У меня есть индексasticsearch, и я хочу получить настроенные отсортированные данные.Предполагая, что это структура моих записей, у меня есть поле с именем field3
, состоящее из массива хэшей, я хочу запросить эти хэши как отдельные записи, отсортированные по возрастанию или убыванию в соответствии с любым полем внутри хэшей.
Пример. Предполагая, что я хочу обработать эти 2 записи в соответствии со значением b
, я хочу получить 5 совпадений хешей field3
, отсортированных по возрастанию в соответствии со значением b
{
"_index": "my_index",
"_id": "1",
"source": {
"field1": "value1",
"field2": "value2",
"field3": [
{
"a": "11",
"b": "2",
"c": "12"
},
{
"a": "13",
"b": "15",
"c": "16"
},
{
"a": "11",
"b": "11",
}
]
}
},
{
"_index": "my_index",
"_id": "2",
"source": {
"field1": "value1",
"field2": "value2",
"field3": [
{
"a": "1",
"c": "2"
},
{
"a": "3",
"b": "5",
"c": "6"
},
{
"a": "1",
"b": "1",
"c": "2"
}
]
}
}
Возвращенные хиты должны быть такими:
"hits": {
"total": "5",
"hits": [
{
"index_id": "2",
"a": "1",
"b": "1",
"c": "2"
},
{
"index_id": "1",
"a": "11",
"b": "2",
"c": "12"
},
{
"index_id": "2",
"a": "3",
"b": "5",
"c": "6"
},
{
"index_id": "1",
"a": "11",
"b": "11",
},
{
"index_id": "1",
"a": "13",
"b": "15",
"c": "16"
}
]
}
Я мог бы нормализовать данные и создать другой индекс со значениями field3
, но это потребовало бы много изменений в моем кодебаза.Есть ли способ выполнить такой запрос?