Вы можете использовать функцию обработки date
процессора , которая будет считывать поля даты, содержащие значение эпохи, и преобразовывать их в обычный формат ISO8601:
Сначала вы можете создать конвейер следующим образом:
PUT _ingest/pipeline/epoch-to-format
{
"processors": [
{
"date": {
"field": "arrival_timestamp",
"target_field": "arrival_timestamp",
"formats": [
"UNIX_MS"
]
}
},
{
"date": {
"field": "event_timestamp",
"target_field": "event_timestamp",
"formats": [
"UNIX_MS"
]
}
}
]
}
Затем, когда вы принимаете документ, вы можете указать используемый конвейер:
PUT test/doc/1?pipeline=epoch-to-format
{
"event_timestamp": 1556843795341,
"arrival_timestamp": 1556843798527,
...
}
И в итоге этот документ будет проиндексирован в ES:
GET test/doc/1
{
"arrival_timestamp" : "2019-05-03T00:36:38.527Z",
"event_timestamp" : "2019-05-03T00:36:35.341Z",
...
}
При входе в Python вы можете указать конвейер следующим образом:
es.index(index='indexname', doc_type='typename', body="string", pipeline='epoch-to-format')