Travel Time Matrix API can be used on Elasticsearch using our plugin. Plugin supports the fastest version of Travel Time Matrix endpoint which uses Protocol Buffers for communication. You can find more details about available versions on our endpoint comparison page.
For access to the Protobuf endpoint, please contact support@traveltime.com for credentials. Having a TravelTime Account is not enough, not having correct access will produce an authorization error.
The source code for the plugin is available on our GitHub.
To find the latest version of the plugin for your Elasticsearch version visit releases repository. Correct version of the plugin must be used for specific Elasticsearch version. If there is no version of the plugin for your Elasticseach version, please contact us.
To install plugin version v.0.2.28
for Elasticsearch version 8.1.1
it is enough to run a command on the nodes running Elasticsearch:
elasticsearch-plugin install https://github.com/traveltime-dev/traveltime-elasticsearch-plugin/releases/download/v0.2.28/traveltime-elasticsearch-plugin_v0.2.28_8.1.1.zip
To use the plugin TravelTime API authentication keys must be specified in elasticsearch.yaml
file:
traveltime.app.id
: this is you API app id.traveltime.api.key
: this is the api key that corresponds to the app id.
You may additionally specify the following configuration options:
traveltime.default.mode
: the default transportation mode that will be used if none is specified in the query.traveltime.default.country
: the default country that will be used if none is specified in the query.
On Elasticsearch version 7.10
and above you can control cache that enables returning travel times in the response:
traveltime.cache.size
: how many requests to cache (default: 50).traveltime.cache.expiry
: how long the travel times will be stored in the cache, in seconds (default: 60).traveltime.cache.cleanup.interval
: how often a background cleanup task will be run, in seconds (default: 120).
object
The traveltime query may only be used with fields that are indexed as geo_point
.
object
object
Point from which travel time will be measured, accepted formats are:
- Object with
lon
andlat
properties, [lon, lat]
array,"lat,lon"
string,- geohash.
float
coords
float
coords
object
Document field that will be used as the destination in the Traveltime query.
integer
Travel time limit in seconds.
Maximum value is 7200
(2 hours) Must be non-negative.
string | optional
Transportation mode used in the search. Transportation modes available: pt
, walking+ferry
, cycling+ferry
, driving+ferry
.
Must be set either in the query or in as a default in the config.
string | optional
Alpha-2 code of the country that the origin
is in. Must be set either in the query or as a default in the config.
Information about supported countries on protobuf endpoint
object | optional
Arbitrary Elasticsearch query that will be used to limit which points are sent to the API.
object | optional
Name of the field that will hold the travel times in the response.
Available for Elasticsearch 7.10 and above.
Example 1
{
"query": {
"traveltime": {
"limit": 900,
"field": "coords",
"origin": {
"lat": 51.509865,
"lon": -0.118092
}
}
}
}
Example 2
{
"traveltime": {
"limit": 7200,
"field": "coords",
"origin": "gcpvj3448qb1",
"mode": "pt",
"country": "uk",
"prefilter": {
"bool": {
"filter": [
{
"range": {
"bedrooms": {
"gte": 3
}
}
}
]
}
}
}
}