Executing geo distance facets
Other than standard types that we have seen in the previous facets, ElasticSearch allows executing facets against a GeoPoint: the geo distance facets. This is an evolution of the previously discussed range facets built to work on geo locations.
Getting ready
You need a working ElasticSearch cluster and an index populated with the script available in online code.
How to do it...
For executing geo distance facets, we will perform the steps given as follows:
Using the
position
field available in documents, we want to aggregate the other documents in four ranges:Less then 10 kilometers
From 10 kilometers to 20
From 20 kilometers to 50
From 50 kilometers to 100
Above 100 kilometers
To achieve these goals, we create a geo distance facet with a code similar to this one:
curl -XGET 'http://127.0.0.1:9200/test-index/test-type/_search?pretty=true&size=0' -d ' { "query" : { "match_all" : {} }, "facets" : { "position" : { "geo_distance"...