2016-01-19 252 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 
      } 
     } 
     } 
    } 
    }