天天看点

Elasticsearch7.4中的Geo Bounds聚合

Geo Bounds聚合是一种指标聚合,用来计算能够包含所有地理坐标点(geo_point)的边界多边形。

注意:截止到目前的版本,geo_bounds聚合只支持geo_point字段类型的聚合操作。

POST /museums/_search?size=0
{
    "query" : {
        "match" : { "name" : "musée" }
    },
    "aggs" : {
        "viewport" : {
            "geo_bounds" : {
                "field" : "location", 
                "wrap_longitude" : true 
            }
        }
    }
}
           

上面的例子中,viewport是聚合的名称,geo_bounds是聚合类型。geo_bounds的参数有:

field:用来指定geo_bound聚合运算时用来获取边界范围的字段名称。

wrap_longitude:是可选参数。该值用以指定边界范围是否允许覆盖国际日期变更线。默认值是true。

上面的例子可能的返回值为:

{
    ...
    "aggregations": {
        "viewport": {
            "bounds": {
                "top_left": {
                    "lat": 48.86111099738628,
                    "lon": 2.3269999679178
                },
                "bottom_right": {
                    "lat": 48.85999997612089,
                    "lon": 2.3363889567553997
                }
            }
        }
    }
}
           

继续阅读