2017-09-03 2 views
0

ich versuche eine Abfrage in elastic zu erstellen, aber es funktioniert nicht wie erwartet.Issue building Elastic query mit oder nicht contition

SQL-Abfrage wäre

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

I Aufzeichnungen wollen den Wert von 1234 in phone1 oder phone2 oder phone3 Feld und Status sind gleich nicht z

I unten Abfrage in elastischen bauen, aber es gibt den Datensatz zurück, selbst wenn der Wert des Status gleich z ist. nicht sicher, was ich vermisse.

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

Antwort

0

ich in der Lage könnte das Problem herauszufinden, wenn ich elastische Abfrage i als Z für Status gespeicherten Daten zu sehen, aber in Abfrage Z Aufzeichnungen noch zurückkehren, wenn ich mit kleinem Fall z, seine Arbeits vergleichen, wie erwartet. es scheint mit Standard-Analysator

zu tun