2017-04-12 3 views
0

Ich habe folgende Anfrage, die wie zu einem Elasticsearch Server gesendet wird:Elasticsearch ist die Behandlung nicht Unix-Zeitstempel als gültige Zeitstempel

http://localhost:9200/myindex/_bulk

jedoch der Zeitstempel nicht als Dokument Zeitstempel erkannt und zeigt sich als nur jedes Feld mit einem langen Wert.

Elasticsearch Dokumente sagen, dass Unix-Epoche ein Standardzeitformat ist und ich keine speziellen Zuordnungen für das erstellen muss.

{ "index" : { "_type" : "regionserver.Regions" } } 
{ "@timestamp" : 1492, "type" : "regionserver.Regions", "region" : "1588230740", "table" : "meta", "storeCount" : 1, "storeFileCount" : 2, "memStoreSize" : 416, "storeFileSize" : 13453 } 

Antwort

0

Sie müssen sich für @timestamp Feld als date Typ, um zu indizieren unix timestamp Werte sonst Elasticsearch betrachtet sie als long Typ explizite Abbildung definiert haben. Also, bevor die Indizierung unix timestamp Werte in @timestamp Feld definieren Mapping wie unten dargestellt:

PUT myindex 
{ 
    "mappings": { 
    "regionserver.Regions": { 
     "properties": { 
     "@timestamp": { 
      "type": "date" 
      } 
     } 
    } 
    } 
} 

hoffe, das hilft!

+0

Danke. Ich habe das nicht versucht. Ich habe vermieden, Mappings für jeden Index und jeden Doctype zu erstellen. Erlaubt ElasticSearch eine globale Einstellung, wo man jedes Feld namens "@timestamp" als Datum abbilden kann? –

+0

Ich denke, ich werde meine Follow-up-Frage beantworten: Die Antwort ist in Vorlagen: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html –

+0

Ja Elasticsearch 'index templates' macht das. – avr

Verwandte Themen