2017-02-04 6 views
0

Ich bin neu zu Elasticsearch und ich versuche, meinen ersten Index zu schaffen, sondern habe Probleme mit einem Zeitstempel-Feld, das vor der Arbeit wurde ...gescheitert zu analysieren Zeitstempel Elasticsearch

ich so meinen Index erstellt:

PUT /kafkasdp 
{ 
    "mappings": { 
    "kafka_logs": { 
     "properties": { 
     "timestamp": { 
      "type": "date" 
     }, 
     "log_level": { 
      "type": "string" 
     }, 
     "message1": { 
      "type": "string" 
     }, 
     "message2": { 
      "type": "string" 
     } 
     } 
    } 
    } 

} 

und dann versuche ich Daten wie folgt an:

post /kafkasdp/kafka_logs 
{ 
    "timestamp": "2017-02-03 19:27:20,606", 
    "log_level": "INFO", 
    "message2": "Deleting segment 1 from log omega-replica-sync-dev-8. (kafka.log.Log)" 
} 

aber halten diesen Fehler:

{ 
    "error": { 
    "root_cause": [ 
     { 
     "type": "mapper_parsing_exception", 
     "reason": "failed to parse [timestamp]" 
     } 
    ], 
    "type": "mapper_parsing_exception", 
    "reason": "failed to parse [timestamp]", 
    "caused_by": { 
     "type": "illegal_argument_exception", 
     "reason": "Invalid format: \"2017-02-03 19:27:20,606\" is malformed at \" 19:27:20,606\"" 
    } 
    }, 
    "status": 400 
} 

Ich dachte mein Zeitstempel ist ein gültiger Datumstyp?

+0

Welche Version von Elasticsearch verwenden Sie? – cybersoft

+0

hier ist, was ich zurück bekam ... '" version ": { " nummer ":" 5.2.0 ", " build_hash ":" 24e05b9 ", " build_date ":" 2017-01-24T19: 52: 35.800 Z ", " build_snapshot ": false, " lucene_version ":" 6.4.0 " },' – user2061886

Antwort

1

Lesen Sie mehr über Datumsart auf Elasticsearch reference: Sie sollten Datumsformat geben Sie in Ihren Dokumenten erwarten:

PUT your_index_name 
{ 
    "mappings": { 
    "your_index_type": { 
     "properties": { 
     "date": { 
      "type": "date", 
      "format": "yyyy-MM-dd HH:mm:ss,SSS" 
     } 
     } 
    } 
    } 
} 

Wie man es nicht specicy hat, Elasticsearch wird Datumswert im ISO-Format erwarten: yyyyMMdd'T'HHmmss.SSS'Z' (zB 2017-02-03T19:27:20.606Z)

+0

Ich bin verwirrt ... ich dachte, es akzeptiert eines dieser Formate ?: https: //www.elastic. co/guide/de/elasticsearch/reference/5.2/mapping-date-format.html # strict-date-time ... vielleicht verstehe ich das nicht, aber sollte es nicht über die 'date_hour_minute_second_fraction' funktionieren – user2061886

+0

Ich schätze ich verpasste das T in 'date_hour_minute_second_fraction' .... danke – user2061886

+0

@ user2061886,' date_hour_minute_second_fraction' akzeptiert 'yyyy-MM-dd'T'HH: mm: ss.SSS'. Wie in diesem Artikel angegeben, ist es ein integriertes Format und alle integrierten Formate sind ISO – cybersoft

Verwandte Themen