2016-01-19 151 views
0

我正在构建一个旅游应用程序,其搜索功能使用Elasticsearch实施。 我已经索引的公交车站及其地域位置的细节显示在文档中下面 样本文档与特定地理位置的距离

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

所以它的特点之一是找到用户的当前位置附近的公交车站的距离。我如何在Elasticsearch中做到这一点?

回答

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 
      } 
     } 
     } 
    } 
    }