您好,我正在尝试从弹性搜索中返回与搜索用户相距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
,这是我使用的版本。
谁能帮我解决弹性搜索6.3中的这个用例吗?汇总仅返回该范围内的用户数,但我想返回该范围内所有用户的完整结果。
答案 0 :(得分:1)
我无法对此进行测试,但是您应该能够将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]
}
}
}
}