Julian Simioni
7 years ago
1 changed files with 62 additions and 0 deletions
@ -0,0 +1,62 @@
|
||||
# Pelias services |
||||
|
||||
A running Pelias installation is composed of several different services. Each service is well suited |
||||
to a particular task. |
||||
|
||||
## Service Use Cases |
||||
|
||||
Here's a list of which services provide which features in Pelias. If you don't need everything Pelias |
||||
does, you may be able to get by without installing and running all the Pelias services |
||||
|
||||
| Service | /v1/search | /v1/autocomplete | /v1/reverse | /v1/reverse (coarse) | Multiple language support (any endpoint) | |
||||
| ------ | ----- | ----- | --------- | ------- | ----- | |
||||
| API | **required** | **required** | **required** | **required** | **required** | |
||||
| Placeholder | **required** | | | | **required** | |
||||
| Libpostal | **required** | | | | | |
||||
| PIP | | | recommended | **required** | | |
||||
| Interpolation | optional | | | | | |
||||
|
||||
## Descriptions |
||||
|
||||
### [API](https://github.com/pelias/api) |
||||
|
||||
This is the core of Pelias. It talks to all other services (if available), Elasticsearch, and |
||||
provides the interface for all queries to Pelias. |
||||
|
||||
### [Placeholder](https://github.com/pelias/placeholder) |
||||
|
||||
Placeholder is used specifically to handle the relational component of geocoding. Placeholder |
||||
understands, for example, that Paris is a city in a country called France, but that there is another |
||||
city called Paris in the state of Texas, USA. |
||||
|
||||
Placeholder also stores the translations of administrative areas in multiple languages. Therefore it |
||||
is required if any support for multiple languages is desired. |
||||
|
||||
Currently, Placeholder is used only for forward geocoding on the `/v1/search` endpoint. In the |
||||
future, it will also be used for autocomplete. |
||||
|
||||
### Libpostal |
||||
|
||||
Libpostal is a library that provides an address parser using a statistical natural language processing |
||||
model trained on OpenStreetMap, OpenAddresses, and other open data. It is quite good at parsing |
||||
fully specified input, but cannot handle autocomplete very well. |
||||
|
||||
The data required for Libpostal to run is around 3GB, and has to be loaded into memory, so this |
||||
service is fairly expensive to run, even for small installations. |
||||
|
||||
Unlike the other Pelias services, we didn't actually write a Pelias Libpostal service. We recommend |
||||
using the [go-whosonfirst-libpostal](https://github.com/whosonfirst/go-whosonfirst-libpostal) |
||||
service created by the [Who's on First](https://whosonfirst.org) team. |
||||
|
||||
## [Point-in-Polygon (PIP)](https://github.com/pelias/pip-service) |
||||
|
||||
The PIP service loads polygon data representing the boundaries of cities, states, regions, countries |
||||
etc into memory, and can perform calculations on that geometric data. Its used to determine if a |
||||
given point lies in a particular polygon. Thus, it's highly recommended for reverse geocoding. |
||||
|
||||
## [Interpolation](https://github.com/pelias/interpolation) |
||||
|
||||
The interpolation service combines street geometries with known addresses and address ranges, to |
||||
allow estimating the position of addresses that might exist, but aren't in existing open |
||||
data sources. It is only used by the `/v1/search` endpoint, but [autocomplete support may be added in |
||||
the future](https://github.com/pelias/interpolation/issues/131). |
Loading…
Reference in new issue