嘿,我正在开发一个应用程序,我需要根据距离过滤器显示提供的纬度经度中的地点。我正在提供来自 elastic search 的数据。我可以使用 geo_distance 查询轻松提供数据,以查找具有中心点指定距离内地理点的文档。但我无法搜索超过 x 公里的数据
弹性搜索版本 - 6.6
映射 -
{
"mappings": {
"_doc": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
要获取小于 x 公里的地方,我使用此查询
{
"query": {
"bool" : {
"filter" : {
"geo_distance" : {
"distance" : "15km",
"location" : {
"lat" : 40.1111,
"lon" : 40.1111
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用什么查询来获取大于 x 公里的结果,地理过滤器是否提供任何查询参数来获取大于 x 距离的数据?我可以将过滤器与must_not结合使用吗?
您只需替换filter为即可must_not实现您所需要的:
{
"query": {
"bool" : {
"must_not" : {
"geo_distance" : {
"distance" : "15km",
"location" : {
"lat" : 40.1111,
"lon" : 40.1111
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
877 次 |
| 最近记录: |