距特定地理位置的距离

时间:2016-01-19 16:51:37

标签: elasticsearch

我正在构建一个旅游应用程序,其搜索功能使用Elasticsearch实现。 我已将公交车站的详细信息及其地理位置编入索引,如下文所示 示例文档

{
"name": "North Stand",
"location": {
"lat": 1.1,
"lon": 1.54
}
}

因此,它的一个功能是从用户当前位置找到到附近公交车站的距离。我怎么能在Elasticsearch中做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用geo_distance_range过滤器/查询。 geo_distance_range

但首先,您需要将位置映射为geoPoint。

{
"bool" : {
    "must" : {
        "match_all" : {}
    },
    "filter" : {
        "geo_distance_range" : {
            "from" : "2km",
            "to" : "6km",
            "location" : {
                "lat": 1.1,
                "lon": 1.54
            }
        }
      }
    }
  }