2017-01-19 4 views
1

Ich versuche, eine Abfrage zu schreiben, wo es in elastischen, dass ein bestimmtes Feld ist NULL.this Abfrage uns in Python mit Python Elasticsearch Client ausgeführt sucht.elastische Abfrage, wo Feld ist Null in elastischen

query:

{ 
    "_source": ["name"], 
    "query": { 
       "nested": { 
        "path": "experience", 
        "query": { 
         "match": { 
          "experience.resignation_date": { 
           "query": None 
          } 
         } 
        } 
       } 
      } 
} 

seit seinem Python i None in der Abfrage Teil verwendet habe, aber es mir diesen Fehler zu werfen.

+0

Sie suchen nach [fehlt] (https://www.elastic.co/guide/en/elasticsearch/ guide/current/_dealing_mit_null_values.html # _missing_query) – casraf

Antwort

3

Die missing Abfrage ist veraltet, die Sie suchen bool/must_not + exists

{ 
    "_source": [ 
    "name" 
    ], 
    "query": { 
    "nested": { 
     "path": "experience", 
     "query": { 
     "bool": { 
      "must_not": { 
      "exists": { 
       "field": "experience.resignation_date" 
      } 
      } 
     } 
     } 
    } 
    } 
} 
1

Mit diesem Ausdruck werden Sie nicht nach Null abfragen, Sie sagen NULL als Abfrage verwenden.

Abfrage muss immer einer der Abfragetypen sein, die ElasticSearch definiert hat, z. B. die Abfrage "Übereinstimmung".

Die Art der Syntax wollte Sie hier

wurde schreiben
query: { 
    match: { 
     "experience.resignation_date": None 
    } 
} 

Wo Sie, dass der Wert matches „None“

dort jedoch mit leeren für passende Dokumente zu behaupten ist eine bessere spezifische Abfragetyp Feldwerte genannt "missing".

Es wird Null Felder sowie Dokumente übereinstimmen, die die Eigenschaft alle zusammen fehlen. Ob das für Sie passender ist, hängt von Ihren Bedürfnissen ab.

EDIT: Wie eine nachfolgende Antwort darauf hinweist, "fehlt" ist jetzt eigentlich veraltet. Das Äquivalent besteht darin, die Abfrage "exists" zu negieren.

query: { 
    bool: { 
     must_not: { 
      exists: "experience.resignation_date" 
     } 
    } 
} 
Verwandte Themen