面试题答案
一键面试描述
在Elasticsearch中,要获取某个矩形地理区域内文档的数量,可以使用geo_bounding_box
聚合。该聚合允许通过指定矩形区域的左上角和右下角坐标来筛选出位于该区域内的文档,并对这些文档进行计数。
聚合查询语句示例
{
"aggs" : {
"within_rectangle" : {
"geo_bounding_box" : {
"field" : "location",
"top_left" : {
"lat" : 40.73,
"lon" : -74.1
},
"bottom_right" : {
"lat" : 40.01,
"lon" : -71.12
}
}
}
}
}
请注意:
- 上述示例中假设文档中有一个名为
location
的地理点字段,实际应用中请替换为你真实的地理坐标字段名。 top_left
和bottom_right
分别为矩形区域的左上角和右下角坐标,需要根据实际区域调整。- 对于索引
geo_index
和文档类型geo_doc
,在实际查询时需要结合具体的Elasticsearch版本,在请求路径中体现,例如在Elasticsearch 7.x及以上版本中,文档类型已被弃用,请求可能类似POST geo_index/_search
。在旧版本中可能是POST geo_index/geo_doc/_search
。