您好,对于一个项目,我正在尝试从 elasticsearch 中返回用户,这些用户的range of 2km to 4km
中的用户远离搜索用户。
我用下面的查询
`
{
"size": 1000,
"from": 0,
"_source": "user_id",
"query":{
"bool":{
"must_not": {
"terms": {
"user_id": []
}
},
"filter":[
{
"geo_distance_range":{
"from":"2km",
"to": "4km",
"location":{
"lon":-122.4194,
"lat":37.7749
}
}
}
]
}
}
}`
这个查询是
deleted in elastic search version 6.3
,这是我使用的版本。谁能帮我解决 elasticsearch 6.3中的这个用例吗?汇总仅返回该范围内的用户数,但我想返回该范围内所有用户的完整结果。
最佳答案
我无法对此进行测试,但是您应该能够将must
和must_not
子句与geo_distance
结合使用似乎是合理的:
"query": {
"bool": {
"must_not": {
"terms": {
"user_id": []
},
"geo_distance": {
"distance": "2km",
"location": [-122.4194, 37.7749]
}
},
"must": {
"geo_distance": {
"distance": "4km",
"location": [-122.4194, 37.7749]
}
}
}
}
关于elasticsearch - Elasticsearch地理距离查询范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52506466/