2015-12-03 35 views
1

我目前正從一個RDBMS世界轉移到NO SQL世界,並且我試圖解決一個問題。 我正在使用ElasticSearch,並且我有兩個索引: 第一個索引「routes」包含一個人名和GeoLocation數組,其中包含他在上週所做的路線。 第二個索引「地址」包含地址列表 - >個人姓名和他家的地理位置點。Elasticsearch的高級查詢(如何做JOIN)

現在,我想打個高級查詢,這將允許用戶過濾是這樣的: - 給我的一切,他們的房子是在一個特定的多邊形(A)的人,也有內另一條路線,其多邊形(B)

這就像對人名進行JOIN聲明 - 我該如何使用ElasticSearch製作這樣的東西?我在寫我的代碼在JAVA

感謝

回答

0

答案很簡單:你不能做一個SQL-equivelant加入Elasticsearch,它只是沒有它是如何工作的。

長的答案:https://www.elastic.co/guide/en/elasticsearch/guide/current/relations.html

你應該與他們之間的某種關係創建你的集合。

雖然在你的情況下,我建議你把所有東西都保存在同一個集合中,然後從那裏處理它,Elasticsearch可以處理它。

+0

我stil不明白我怎麼可以從不同的索引創建任何意見... –

+0

我建議改變你的指數結構。在這裏嘗試您的選擇:http://elasticsearch-users.115913.n3.nabble.com/Joining-2-indices-in-Elasticsearch-td4033780.html – AlexD