2017-07-28 5 views
0

Hier ist meine Daten ...Elasticsearch: existiert filtern funktioniert nicht

{"score":60,"name":"bill"}, 
{"score":50,"name":"john"}, 
{"score":null,"name":"sam"} 

Suche einen Filterbereich Abfrage zu schreiben, die auch Nullwerte enthalten soll.

Ich versuchte dies ... und erwartete alle 3 Ergebnisse, aber es ergab 0 Ergebnisse ...?

"filter": { 
      "bool": { 
       "must": [ 
       { 
        "range": { 
        "score": { 
         "lte": 100 
        } 
        } 
       }, 
       { 
        "exists": { 
        "field": "score" 
        } 
       } 
       ] 
      } 
      } 

Jede Hilfe sehr geschätzt ... Dank

+0

können Sie fügen Sie ihn haben die Rückmeldung auch? – MedAli

+0

@MedAli Nicht sicher, was meinst du? Es gibt keinen Fehler .... Es gab gerade 0 Ergebnisse – Slyper

Antwort

1

Was Sie tun müssen, ist, die eine bool/should entweder mit Ihrem range Abfrage oder einem fehlenden score Feld

{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "range": { 
      "score": { 
       "lte": 100 
      } 
      } 
     }, 
     { 
      "bool": { 
      "must_not": { 
       "exists": { 
       "field": "score" 
       } 
      } 
      } 
     } 
     ] 
    } 
    } 
} 
+0

ein Glück damit? – Val

Verwandte Themen