【问题标题】:How to get the nearest location(geo point) to a given geo point using Elasticsearch Geo queries如何使用 Elasticsearch 地理查询获取到给定地理点的最近位置(地理点)
【发布时间】:2021-11-29 21:26:06
【问题描述】:

我在 Elasticsearch 中有一组位置(地理点)索引。有人可以建议一种使用elasticsearch地理查询获取到给定地理点的最近地理点的方法。我已经尝试过使用Geo Distance 查询,但是它需要我提供距离以指定以指定位置为中心的圆的半径。我正在寻找一种替代解决方案,无论距离如何,它都可以返回最近的位置。欢迎提出建议。

【问题讨论】:

    标签: elasticsearch geolocation gis geospatial


    【解决方案1】:

    最好的方法是利用distance sorting 并检索最近的地理位置:

    GET my-index/_search
    {
      "size": 1,                                <--- return top 1
      "sort" : [
        {
          "_geo_distance" : {
              "location-field" : [-70, 40],     <--- center location
              "order" : "asc",                  <--- sorted by closest distance
              "unit" : "km",
              "mode" : "min",
              "distance_type" : "arc",
              "ignore_unmapped": true
          }
        }
      ],
      "query" : {
        "match_all" : {}
      }
    }
    

    【讨论】:

    • 非常感谢@Val。我相信它会查询所有记录。对于我拥有的数百万条记录,这将是一项昂贵的操作。
    • 先试一试再考虑性能
    猜你喜欢
    • 2018-06-11
    • 2016-05-02
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多