2016-12-14 27 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很新,但我认为你想要做的是流水线聚合。这是聚合其他聚合的输出及其相关度量的聚合。
因此,要获得父母聚合中的火车站位置,并将这些信息用于链接兄弟姐妹。
希望这有助于。