elasticsearch查询在圆环或者扇环上的数据
由于elastic5.0以上版本取消了geo_distance_range查询,采用以下办法可以达到效果
这里查询的是在厦门900km以内,不在300km以内的数据,等同于geo_distance_range查询
GET test01/doc/_search
{
"query":{
"bool": {
"must": [
{
"geo_shape": {
"location": {
"shape": {
"type":"circle",
"coordinates":[118.10000,24.46667],
"radius":"900km"
},
"relation": "within"
}
}
}
],
"must_not": [
{
"geo_shape": {
"location": {
"shape": {
"type":"circle",
"coordinates":[118.10000,24.46667],
"radius":"300km"
},
"relation": "within"
}
}
}
]
}
}
}
使用Elasticsearch进行复杂地理范围查询
这篇博客介绍了如何在Elasticsearch 5.0及以上版本中实现类似geo_distance_range的功能。通过bool查询结合must和must_not子句,设置两个geo_shape查询,分别定义一个圆形范围(900km)作为查询条件和另一个(300km)作为排除条件,从而筛选出位于厦门900km以内但不在300km以内的数据。
1039

被折叠的 条评论
为什么被折叠?



