使用Elasticsearch进行高级查询(如何进行JOIN)

时间:2015-12-03 12:15:35

标签: elasticsearch

我目前正在从RDBMS世界进入NO SQL世界,我正试图解决问题。 我使用ElasticSearch,我有2个索引: 第一个索引" routes",包含一个人名和GeoLocation点数组,以及他在上周制作的路线。 第二个索引,"地址",包含地址列表 - >一个人的名字,以及他家的地理位置点。

现在,我想创建一个高级查询,它允许用户过滤类似的内容: - 给我所有他们的房子在特定多边形(A)中的人,并且还有另一个多边形内的路线(B)

就像在人名上做一个JOIN声明一样 - 我怎样才能使用ElasticSearch做这样的事情?我在JAVA中编写代码

由于

1 个答案:

答案 0 :(得分:0)

简短的回答:你不能在Elasticsearch中做一个SQL-equivelant JOIN,它不是它的工作方式。

答案很长:https://www.elastic.co/guide/en/elasticsearch/guide/current/relations.html

您应该创建具有某些关系的集合。

虽然在你的情况下,我建议你只保存同一个集合中的所有内容并从那里处理它,Elasticsearch可以处理它。