2016-07-12 16 views
1

Unten Abfrage, wenn in Elasticsearch Version 1.x ausgeführtDatumsbereich Abfrage Elasticsearch

erwäge Dokumente nach 2016.06.15 erstellt, die Dokumente, die Zeit jenseits 00.00 für das Datum 15.06/2016.It haben überlegte Dokumente bis zum 16.06.2016 23: 59: 59.999.

Mit der neuen Version von ES 2.x hat die Bereichsabfrage jedoch aufgehört, Dokumente zu berücksichtigen, die für das Datum 16.06.2016 eine Zeit von mehr als 12 Uhr aufweisen. Jetzt denkt über Dokumente bis 14.06.2016 23: 59: 59.999 nach.

Was genau hat sich hier geändert?

{ 
"from": 0, 
"size": 10, 
"sort": [ 
    { 
    "PRONumber.sort": { 
     "order": "desc" 
    } 
    } 
], 
"query": { 
    "bool": { 
    "must": [ 
     { 
     "match": { 
      "BOLNumber": { 
      "query": "7861254", 
      "analyzer": "gtz_search_analyzer", 
      "operator": "and" 
      } 
     } 
     }, 
     { 
     "range": { 
      "CreatedDate": { 
      "gte": "1753-01-01", 
      "lte": "2016-06-15" 
      } 
     } 
     } 
    ] 
    } 
} 
} 
+0

Wenn ich mich richtig erinnere, haben Sie es in hinzufügen der 'must'-Abschnitt oder andere boolesche Abschnitte. –

Antwort

2

In Elasticsearch 2.x für die Abfrage im OP die obere Grenze 6/15/2016 00:00:00.000 und nicht 6/14/2016 23.59.59.999 ist.
Vom documentation folgt daraus, dass Sie explizit in der Abfrage round-up für Tag angeben würden, wie unten

im gezeigten Beispiel

Beispiel:

{ 
"from": 0, 
"size": 10, 
"sort": [ 
    { 
    "PRONumber.sort": { 
     "order": "desc" 
    } 
    } 
], 
"query": { 
    "bool": { 
    "must": [ 
     { 
     "match": { 
      "BOLNumber": { 
      "query": "7861254", 
      "analyzer": "gtz_search_analyzer", 
      "operator": "and" 
      } 
     } 
     }, 
     { 
     "range": { 
      "CreatedDate": { 
      "gte": "1753-01-01", 
      "lte": "2016-06-15||/d" 
      } 
     } 
     } 
    ] 
    } 
} 
} 
+0

Danke! Ich denke früher in 1.x war die obere Grenze 6/15/2016 23.59.59.999 nicht 14.06.2016 23.59.59.999. –