Способ сделать это - использовать Pipeline
. Общая идея заключается в том, что вы определяете конвейер и даете ему имя в своем кластере. Затем вы можете ссылаться на него при индексации данных, и отправленные вами данные будут передаваться через этот конвейер для их преобразования. Обратите внимание, что конвейеры будут работать только на узлах, помеченных как узлы «загрузки».
https://www.elastic.co/guide/en/elasticsearch/reference/current/pipeline.html
Для конкретного переименования вы можете использовать этот процессор: https://www.elastic.co/guide/en/elasticsearch/reference/current/rename-processor.html
Я не сделалне проверяйте это явно, но код будет выглядеть следующим образом:
Определите конвейер в вашем кластере с именем:
PUT _ingest/pipeline/my-pipeline-name
{
"description" : "rename user name",
"processors" : [
{
"rename" : {
"field": "name",
"target_field": "user_name"
},
"rename" : {
"field": "field2",
"target_field": "newfield2"
}
}
]
}
Загрузите документ, используя конвейер:
POST /some_index/_doc/?pipeline=my-pipeline-name
{
"desc": "this is test description",
"name": "some random name",
}