2015-11-05 70 views
0

對於bool過濾器中的特定字段是否可以使用多項術語條件?我們可以在elasticsearch過濾器中使用多項術語

query": { 
     "filtered": { 
     "filter": { 
      "bool": { 
       "must": [ 
        { 
        "terms": { 
         "events": [ 
          "abc", 
          "def", 
          "ghi", 
          "jkl" 
         ] 
        }, 
        "terms" : { 
         "users" : [ 
          "user_1", 
          "user_2", 
          "user_3" 
         ] 
        } 
        } 
       ] 
      } 
     } 
     } 
    } 

第一項過濾器工作正常,但我不能夠使用第二項,請更正,如果我做錯了什麼與上面的查詢。

回答

3

你幾乎在那裏,你忘了一個支架。下面是正確的查詢:

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "bool": { 
      "must": [ 
      { 
       "terms": { 
       "events": [ 
        "abc", 
        "def", 
        "ghi", 
        "jkl" 
       ] 
       } 
      }, 
      { 
       "terms": { 
       "users": [ 
        "user_1", 
        "user_2", 
        "user_3" 
       ] 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 

這將評估兩個條件:

  1. 你的事件必須是ABC/DEF/GHI/JKL
  2. 用戶必須是USER_1/user_2/user_3
  3. 一個

基本上,每個術語查詢/過濾器需要包裝在自己的大括號中,他們需要是兄弟姐妹。

相關問題