Elasticsearch format de la date
Je suis en train d'envoyer le suivant JSON entrée à elasticsearch, mais je suis à l'obtention d'une erreur de l'analyseur.
Ce JSON entrée
{
"chassisNumber": "654321",
"position": "40.480143, -3.688960",
"issue": "Position",
"timestamp": "2016-07-15T15:29:50+02:00[Europe/Paris]"
}
la définition de l'Index
{
"mappings":{
"vehicle":{
"properties":{
"vehicle":{
"type":"string"
},
"position":{
"type": "geo_point"
},
"issue":{
"type":"string"
},
"timestamp":{
"type":"date",
"format":"YYYY-MM-DD'T'HH:mm:ssZ"
}
}
}
}
}
Et de l'erreur associée à la "timestamp" sur le terrain.
"reason": "Invalid format: \"2016-07-15T15:29:50+02:00[Europe/Paris]\" is malformed at \"[Europe/Paris]\""
J'ai essayé avec un peu de formats de date, mais personne n'a été succès. Quelqu'un peut-il m'aider pour définir le format correct pour analyser les champs "timestamp" dans elasticsearch?
Merci!!!
Vous devez supprimer les
[Europe/Paris]
partie, il n'est pas nécessaire que +02:00
est suffisant.
OriginalL'auteur gleX | 2016-08-05
Vous devez vous connecter pour publier un commentaire.
Comme vous pouvez le voir dans la cartographie de votre champ
timestamp
est mappé commedate
type de formatYYYY-MM-DD'T'HH:mm:ssZ
. Donc, Elasticsearch voulez latimestamp
champ à être passé dans le même format. Les données que vous passez sont2016-07-15T15:29:50+02:00[Europe/Paris]
qui comprend[Europe/Paris]
après les données de zone qui n'est pas donné dans la cartographie et de ne pas suivre défautISO 8601
format pris en charge par Elasticsearch (plus de données disponibles ici).Vous pouvez en lire plus sur le format de date par défaut pris en charge par Elasticsearch ici.
Donc, soit vous devez supprimer les données transmises à Elasticsearch et de le garder en fonction de la cartographie
ou modifier votre cartographie de format de date personnalisé qui suit la joda syntaxe définie ici. Dans votre cas, si elle est littérale de la zone exigé, vous devez utiliser
z
trop.OriginalL'auteur Sumit Kumar