2017-09-03 20 views
0

我试图在弹性中构建查询,但未按预期工作。发布构建使用or而不是联系的弹性查询

SQL查询将

select * from xyz 
where (phone1 = "1234" or phone2 ="1234" or phone3 = "1234") 
and status != "Z" 

我想这有PHONE1或PHONE2或电话3场和状态的1234值的记录并不等于到z

我有弹性建立下面的查询,但它即使状态值等于z,也会返回记录。不知道我错过了什么。

{ 
    "query": { 
     "bool": { 
      "should": [ 
       { 
        "term": { 
         "phone1": "1234" 
        } 
       }, 
       { 
        "term": { 
         "phone2": "1234" 
        } 
       }, 
       { 
        "term": { 
         "phone3": "1234" 
        } 
       } 
      ], 
      "minimum_should_match": 1, 
      "must_not": { 
       "term": { 
        "status": "Z" 
       } 
      } 
     } 
    } 
} 

回答

0

我能弄清楚这个问题,当我查询弹性,我看到存储为Z的状态,但在查询ž数据仍然是返回的记录,当我小的情况下z相比,预期其工作。它似乎与默认分析仪