mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-05 20:48:22 +00:00
5f91241f57
Turns the top example in each of the geo aggregation docs into a working example that can be opened in CONSOLE. Subsequent examples can all also be opened in console and will work after you've run the first example. All examples are tested as part of the build.
83 lines
2.3 KiB
Plaintext
83 lines
2.3 KiB
Plaintext
[[search-aggregations-metrics-geobounds-aggregation]]
|
|
=== Geo Bounds Aggregation
|
|
|
|
A metric aggregation that computes the bounding box containing all geo_point values for a field.
|
|
|
|
|
|
Example:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
PUT /museums
|
|
{
|
|
"mappings": {
|
|
"doc": {
|
|
"properties": {
|
|
"location": {
|
|
"type": "geo_point"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
POST /museums/doc/_bulk?refresh
|
|
{"index":{"_id":1}}
|
|
{"location": "52.374081,4.912350", "name": "NEMO Science Museum"}
|
|
{"index":{"_id":2}}
|
|
{"location": "52.369219,4.901618", "name": "Museum Het Rembrandthuis"}
|
|
{"index":{"_id":3}}
|
|
{"location": "52.371667,4.914722", "name": "Nederlands Scheepvaartmuseum"}
|
|
{"index":{"_id":4}}
|
|
{"location": "51.222900,4.405200", "name": "Letterenhuis"}
|
|
{"index":{"_id":5}}
|
|
{"location": "48.861111,2.336389", "name": "Musée du Louvre"}
|
|
{"index":{"_id":6}}
|
|
{"location": "48.860000,2.327000", "name": "Musée d'Orsay"}
|
|
|
|
POST /museums/_search?size=0
|
|
{
|
|
"query" : {
|
|
"match" : { "name" : "musée" }
|
|
},
|
|
"aggs" : {
|
|
"viewport" : {
|
|
"geo_bounds" : {
|
|
"field" : "location", <1>
|
|
"wrap_longitude" : true <2>
|
|
}
|
|
}
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
// CONSOLE
|
|
|
|
<1> The `geo_bounds` aggregation specifies the field to use to obtain the bounds
|
|
<2> `wrap_longitude` is an optional parameter which specifies whether the bounding box should be allowed to overlap the international date line. The default value is `true`
|
|
|
|
The above aggregation demonstrates how one would compute the bounding box of the location field for all documents with a business type of shop
|
|
|
|
The response for the above aggregation:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
{
|
|
...
|
|
"aggregations": {
|
|
"viewport": {
|
|
"bounds": {
|
|
"top_left": {
|
|
"lat": 48.86111099738628,
|
|
"lon": 2.3269999679178
|
|
},
|
|
"bottom_right": {
|
|
"lat": 48.85999997612089,
|
|
"lon": 2.3363889567553997
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
// TESTRESPONSE[s/\.\.\./"took": $body.took,"_shards": $body._shards,"hits":$body.hits,"timed_out":false,/]
|