2015-11-05 69 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. 一个

基本上,每个术语查询/过滤器需要包装在自己的大括号中,他们需要是兄弟姐妹。

相关问题