如果我将客户位置存储为geo_point数据类型(纬度/经度),并且我需要确定按geo_point位置分组的doc_count,那么elasticsearch_dsl语法是什么?
答案 0 :(得分:0)
以下查询将为您提供所需的内容:
POST <your_index_name>/_search
{
"size":0,
"aggs":{
"myaggs":{
"terms":{
"script":"def x = String.valueOf(doc['location'].lat).concat(',')+ String.valueOf(doc['location'].lon); return x;"
}
}
}
}
尽管我有上述查询,但我建议您重新考虑一下您的要求,因为当您使用<进行汇总时,仅 来自特定geo_point
的strong> 范围 ,例如search gas stations which are near 100 miles around a house you have Amsterdam
。
然后,您可以使用专门为处理geo_point
数据类型而构建的聚合。我个人觉得我提供的查询虽然可以正常运行,但没有任何意义,或者我怀疑这是否有帮助(尽管我希望它能提供帮助,但事实证明我是错的)。
请通过以下链接,以便您为正确的用例创建汇总,或者至少使您重新考虑当前的用例。
Geo Distance Aggregation和Geo Hash-grid Aggregation
希望有帮助!