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.
You need a working ElasticSearch cluster and an index populated with the script available in online code.
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"...