You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
3.3 KiB
63 lines
3.3 KiB
7 years ago
|
# 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).
|