Есть ли способ манипулировать (например, конкатенировать) возвращаемые поля из запроса?манипулировать возвращенными полями в elasticsearch
Это, как я создал свой индекс:
PUT /megacorp/employee/1
{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
И это, как я запрашиваю его:
GET /megacorp/employee/_search
{
"query": {"match_all": {}}
}
Ответ таков:
{
"took": 4,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "megacorp",
"_type": "employee",
"_id": "1",
"_score": 1,
"_source": {
"first_name": "John",
"last_name": "Smith",
"age": 25,
"about": "I love to go rock climbing",
"interests": [
"sports",
"music"
]
}
}
]
}
}
Это все работает нормально ,
Что я хочу, это объединить два поля из источника _source и отобразить его на выходе в виде нового поля.
first_name и last_name должны быть объединены в новое поле «full_name». Я не могу понять, как это сделать, не создавая новое поле в моем индексе. Я просмотрел «copy_to», но для этого требуется явно указать свойство хранилища в сопоставлении, и вы должны явно запросить сохраненное поле в запросе. Но основной недостаток заключается в том, что когда вы делаете то и другое, имя first_name и last_name возвращаются в запятую. Я хотел бы хорошую строку: «Джон Смит»