2016-12-14 30 views
0

假設我有兩種類型的Elasticsearch索引,可能類似「火車站」和「商店」。這些類型都有經度和緯度,所以我可以很容易地找到所有在53.1,9.5等半徑500米的商店 - 沒有問題。Elasticsearch:兩種類型之間的距離搜索

現在我想找到所有距離火車站不超過500米的商店,但我不知道Elasticsearch是如何實現的 - 任何人都可以爲我提供建議或建議,我可以向Google尋求幫助?

+0

我想你還需要從火車站到商店的所有路線(道路)嗎?只有這樣才能找到不超過500米的路線嗎?如果是這樣的話,那麼擁有經度和緯度是不夠的。你需要從一個地方到另一個地方的確切路徑 –

+0

不,我不想計算任何與路由:-) 我只想知道哪些商店或多或少靠近火車站,所以他們可以達到沒有一輛車或沒有幾小時的行走。我不關心從火車到商店的路線的確切長度,我只是想知道他們是否在彼此相鄰的地方。 – Malte

+0

好的。在這種情況下,地理距離過濾器可以解決您的問題。參考:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/query-dsl-geo-distance-query.html –

回答

0

我對elasticsearch很新,但我認爲你想要做的是流水線聚合。這是聚合其他聚合的輸出及其相關度量的聚合。
因此,要獲得父母聚合中的火車站位置,並將這些信息用於鏈接兄弟姐妹。
希望這有助於。