2012-02-01 107 views
2

我在使用elasticsearch時遇到了一些問題,並想知道是否有人可以幫我解決這個問題。ElasticSearch,如何搜索包含特定數組元素的文檔

我有一個包含元組(數組)的文檔(出版物)。

喜歡的東西:

{ 
     .... 

     publications: [ 
     { 
      item1: 385294, 
      item2: 11 
     }, 
     { 
      item1: 395078, 
      item2: 1 
     } 
     ] 

     .... 
    } 

我的問題是誰檢索包含特定的元組文件,對於爲例(ITEM1 = 395078和ITEM2 = 1)。

無論我嘗試,它似乎總是把物品1和項目2分開,我不能告訴elasticsearch該物品1和ITEM2必須具有相同的元組內的特定值,而不是進行的跨整個陣列...

是有什麼我在這裏失蹤?

謝謝

回答

2

這是不可能的直接方式。 ElasticSearch在檢查條件之前將數組變平。 這意味着 elasticSearch匹配 a = x和b = y1到[{a = x,b = y},{a = x1,b = y1}]這不會發生在常規數組檢查中。

,你可以在這裏做什麼是嵌套類型的

+0

謝謝,明天我會看看嵌套類型。還有一個問題,如果這樣的商店出版物:出版物:[{385294:11},{395078:1}]它如何幫助我查詢? – 2012-02-01 21:55:22

+0

如果前面有item1的值,則可以查詢數組中的值385294。它會給出11。 – 2012-02-02 06:17:11