You need to sign in or sign up before continuing.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
GeoCentroid.md 1.79 KiB
Geo Centroid Aggregation
More info about histogram aggregation is in the official elasticsearch docs
A metric aggregation that computes the weighted centroid from all coordinate values for a Geo-point datatype field.
The data type of the field that is specified for the aggregation must be geo-point
.
Simple example
{
"query" : {
"match" : { "crime" : "burglary" }
},
"aggs" : {
"centroid" : {
"geo_centroid" : {
"field" : "location"
}
}
}
}
And now the query via DSL:
$geoCentroidAggregation = new GeoCentroidAggregation('centroid', 'location');
$search = new Search();
$search->addQuery(new MatchQuery('crime', 'burglary'));
$search->addAggregation($geoCentroidAggregation);
$queryArray = $search->toArray();
Advanced example
The query provides more information when when combined as a sub-aggregation to other bucket aggregations. Here is an example of that:
{
"query" : {
"match" : { "crime" : "burglary" }
},
"aggs" : {
"towns" : {
"terms" : { "field" : "town" },
"aggs" : {
"centroid" : {
"geo_centroid" : { "field" : "location" }
}
}
}
}
}
And now via DSL:
$geoCentroidAggregation = new GeoCentroidAggregation('centroid', 'location');
$termsAggregation = new TermsAggregation('towns', 'town');
$termsAggregation->addAggregation($geoCentroidAggregation);
$search = new Search();
$search->addQuery(new MatchQuery('crime', 'burglary'));
$search->addAggregation($termsAggregation);
$queryArray = $search->toArray();