如何使用具有多个地理点的elasticsearch距离查询

时间:2016-04-27 19:15:28

标签: elasticsearch

说,我想搜索一个距离A,B或C三个地理点中任意一个5kms的文档。是否可以在单个查询中执行此操作或如何执行此操作?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用bool/should个查询进行三次geo_distance次查询。

POST /your_index/_yearch
{
  "query": {
    "bool": {
      "should": [
        {
          "geo_distance": {
            "distance": "5km",
            "pin.location": {
              "lat": 40,
              "lon": -70
            }
          }
        },
        {
          "geo_distance": {
            "distance": "5km",
            "pin.location": {
              "lat": 41,
              "lon": -71
            }
          }
        },
        {
          "geo_distance": {
            "distance": "5km",
            "pin.location": {
              "lat": 42,
              "lon": -72
            }
          }
        }
      ]
    }
  }
}