Ich benutze die Reindex-API in ES 5.4.1, und ich muss ein langes Feld (das ein Datum darstellt) in ein Datumsfeld konvertieren. So sieht der Quellindex wie folgt aus:Elasticsearch Ingest Pipeline -epoch_millis nach Datum Format
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "twitter",
"_type": "tweet",
"_id": "1",
"_score": 1,
"_source": {
"temp": 1496938873065,
"message": "hello",
"user": "joan"
}
}
]
}
temp muss in ein Datumsobjekt konvertiert werden.
Ich möchte einen Prozessor verwenden,
PUT _ingest/pipeline/p1
{
"processors": [
{
"date" : {
"field" : "temp",
"target_field" : "updatedOn",
"formats":["epoch_millis"],
"timezone" : "Europe/Amsterdam"
}
}
]
}
Aber zu versuchen, diesen Prozessor zu erstellen, bekomme ich einen Fehler
{
"error": {
"root_cause": [
{
"type": "exception",
"reason": "java.lang.IllegalArgumentException: Illegal pattern component: p",
"header": {
"processor_type": "date"
}
}
],
"type": "exception",
"reason": "java.lang.IllegalArgumentException: Illegal pattern component: p",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "Illegal pattern component: p"
},
"header": {
"processor_type": "date"
}
},
"status": 500
}
Irgendwelche Ideen?
Nizza, jetzt die Pipeline gearbeitet zu schaffen! Vielen Dank Val, du bist großartig. Allerdings gibt es jetzt ein neues Problem. Wenn ich versuche, die Pipeline mit der reindex API anzuwenden, mit - POST _reindex { "Quelle": { "index": "twitter" }, "dest": { "index": "twitter" , "pipeline": "p1" } } Ich bekomme jetzt eine Ausnahme "field [temp] vom Typ [java.lang.Long] kann nicht in [java.lang.String]" – user2689782
Sie können nicht das gleiche verwenden Index als Quelle und Ziel. Ihr Ziel muss ein anderer Index mit dem neuen Mapping sein. – Val
Ich benutze einen anderen Zielindex – user2689782