2016-12-14 4 views
6

Ich möchte Datumsbereich Abfrage wie folgt verwenden:Elasticsearch Datumsbereich Abfragen mit Nullwerten kombinieren

{ 
    "range" : { 
     "deadline" : { 
      "gte" : "2016-12-14", 
     } 
    } 
} 

Mein Index enthält für den Termin als auch leere Werte. Ich möchte diese null-datierten Dokumente in den Suchergebnissen zusammen mit den Daten in Reichweite erhalten. Wie kann ich Datumsbereich mit "must_not" Abfrage in elastischen 5.x

+0

Sie meinen Nullwerte innerhalb Ihres Datumsbereichs zu vermeiden? – Kulasangar

Antwort

5

kombinieren Ich denke, eine bool Abfrage würde den Trick tun.

{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "range": { 
      "deadline": { 
       "gte": "2016-12-14" 
      } 
      } 
     }, 
     { 
      "bool": { 
      "must_not": { 
       "exists": { 
       "field": "deadline" 
       } 
      } 
      } 
     } 
     ] 
    } 
    } 
} 

In Elasticsearch Indizes null Werte nicht existieren, so verwenden wir die Abfrage existieren. Die Verwendung der fehlenden Abfrage wäre weniger ausführlich, aber es ist deprecated since 2.2.

ich Informationen nicht genug habe so mein Beispiel in Abfragekontext läuft, aber vielleicht Filter Kontext bequemer wäre in diesem Fall.