У меня есть индекс, который содержит пользователя и его список заказов в elasti c:
PUT index/_doc/123
{
"user_id": 123
"name": "User1",
"address": "Street",
"orders": [
{
"order_idx": 1,
"detail": "some details"
"amount": 400
},
{
"order_idx": 2,
"detail": "new detail"
"amount": 200
}
]
}
PUT index/_doc/456
{
"user_id": 456
"name": "User2",
"address": "Street New",
"orders": [
{
"order_idx": 1,
"detail": "some new details"
"amount": 450
},
{
"order_idx": 2,
"detail": "ordered"
"amount": 600
}
]
}
Я хотел бы выполнить поиск по полю order_idx
и получить объединенный JSON родительского элемента и вложенный объект:
GET search by order_idx = 2
[
{
"user_id": 123,
"name": "User1",
"address": "Street",
"order_idx": 2,
"detail": "new detail2",
"amount": 200
},
{
"user_id": 456,
"name": "User2",
"address": "Street New",
"order_idx": 2,
"detail": "ordered",
"amount": 600
}
]
Можем ли мы объединить json в elasti c или мне нужно сделать это снаружи?
РЕДАКТИРОВАТЬ:
Если объединение не может быть сделано, я могу получить только фильтрованную часть массива. например:
GET search by order_idx = 2
[{
"user_id": 123,
"name": "User1",
"address": "Street",
"orders": [
"order_idx": 2,
"detail": "new detail2",
"amount": 200
]
},
{
"user_id": 456,
"name": "User2",
"address": "Street New",
"orders": [
"order_idx": 2,
"detail": "ordered",
"amount": 600
}
}]