2017-02-14 5 views
0

Ich habe die folgende dynamische Vorlage in meinem Mapping.ElasticSearch - ungültiges Datum-Uhrzeit-Format im Mapping

"dt": { 
    "match": "*Time", 
    "mapping": { 
     "type": "date", 
     "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-ddTHH:mm:ssZ" 
    } 
} 

Doch wenn ich ein Dokument mit "Geburtszeit" einfügen: "1992-05-06T00: 00: 00Z" Ich erhalte den folgenden Fehler:

"type":"illegal_argument_exception","reason":"Invalid format: [yyyy-MM-ddTHH:mm:ssZ]: Illegal pattern component: T" 

Ich dachte, mein Datetime-Format ist ein ISO Standard, dass ES aus der Box verstehen sollte. Was sollte mein Mapping-Format sein, um BirthTime zu unterstützen?

Vielen Dank im Voraus.

Antwort

3

Verwenden

"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ssZZ"

statt

"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-ddTHH:mm:ssZ"

+0

Arbeitete! Gibt es Hinweise darauf, warum dies funktioniert oder wo in den Dokumenten? Danke noch einmal! – user481779

+0

Elasticsearch verwendet Joda für Datumsoperationen. Siehe: http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html –

Verwandte Themen