2017-03-20 2 views
0

Kann ich eine Bereich Abfrage auf Standard timestamp Feld Ignorieren date Werte d. H. Mit nur Zeit im Zeitstempel - sagen 2 Stunden jeden Tag?@timestamp Bereich Abfrage in elasticsearch

Meine Absichten sind, nach allen Dokumenten zu suchen, aber die Dokumente auszuschließen, die zwischen 9 PM und 12 AM indiziert werden (Ich habe Beispiel mit Datumsbereichen in der Filterung gesehen).

Zeitstempel Beispiel steht folgendes:

"@timestamp": [ 
        "2015-12-21T15:18:17.120Z" 
       ] 

Elasticsearch Version: 1.5.2

Antwort

0

Meine erste Idee wäre, das Datum Mathematik in Elasticsearch Abfrage zu verwenden, z.B. Wenn Sie Ihre Abfrage um 1 Uhr ausführen, würde dies funktionieren:

{ 
    "query": { 
     "range" : { 
      "@timestamp" : { 
       "gte": "now-16h/h", 
       "lte": "now-1h/h" 

      } 
     } 
    } 
} 

(achten Sie aber auf die Zeitzone).

Soweit ich weiß, wäre die einzige andere Möglichkeit, scripting zu verwenden.

Bitte beachten Sie auch, dass Sie eine sehr alte Version von Elasticsearch betreiben.

bearbeiten Wenn Sie einfach absolutes Datum brauchen, dann überprüfen, wie Ihr @timestamp Feld sehen, und das gleiche Format verwenden, zum Beispiel auf meinem Elasticsearch, wäre es:

{ 
    "query": { 
     "range" : { 
      "@timestamp" : { 
       "gte": "2015-03-20T01:21:00.01Z", 
       "lte": "2015-03-21T01:12:00.04Z" 

      } 
     } 
    } 
} 
+0

absichtlich, schrieb ich ein Datum mit Jahr 2015 (es ist nicht so, wie ich jeden Tag abfrage, kann ich für ein Jahr alt Daten abfragen) – Umer

+0

Grundsätzlich müssen Sie nur vorsichtig sein, wie formatiert Ihr Datum, dann können Sie einfach die gleiche Formatierung mit einem Bereich querw verwenden, Siehe meine bearbeitete Version – Adonis