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