Как сделать запрос к настроенным отсортированным записям изasticsearch - PullRequest
0 голосов
/ 30 января 2019

У меня есть индекс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, но это потребовало бы много изменений в моем кодебаза.Есть ли способ выполнить такой запрос?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...