elasticsearch - Elasticsearch地理距离查询范围

标签 elasticsearch

您好,对于一个项目,我正在尝试从 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中的这个用例吗?汇总仅返回该范围内的用户数,但我想返回该范围内所有用户的完整结果。

最佳答案

我无法对此进行测试,但是您应该能够将mustmust_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/

相关文章:

json - 在建议阶段使用内联整理查询的Elasticsearch I/O异常

ruby-on-rails - 如何将命名范围应用于轮胎搜索结果?

elasticsearch - 自动化Kibana仪表盘创建

java - NoNodeAvailableException[配置的节点均不可用 : [{#transport#-1}{. ..}{127.0.0.1}{127.0.0.1:9300}]]

elasticsearch - Elasticsearch-映射其他索引的字段

elasticsearch - 我应该将数据全部组织在一张表中吗?

elasticsearch - logstash geoip.location 映射到 geo_point 不工作

elasticsearch - Elasticsearch用于大型可搜索数据库

elasticsearch - 使用 Elasticsearch 如何过滤日期范围内出勤率超过80%的员工

elasticsearch - elasticsearch在字段上返回不正确的value_count