如何使用 Elasticsearch Geo 查询获取到给定地理点的最近位置(地理点)

How to get the nearest location(geo point) to a given geo point using Elasticsearch Geo queries

我在 Elasticsearch 中索引了一组位置(地理点)。有人可以建议一种使用弹性搜索地理查询获取距给定地理点最近的地理点的方法。我已经尝试使用 Geo Distance 查询,但是它要求我提供距离以指定以指定位置为中心的圆的半径。我正在寻找一种替代解决方案,它可以 return 最近的位置,而不管距离有多远。欢迎提出建议。

最好的方法是利用 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" : {}
  }
}