Эффективная сортировка результатов по сопоставленным / доступным для поиска свойствам объекта - PullRequest
0 голосов
/ 25 февраля 2020

В моем текущем индексе, названном items, я ранее сортировал результаты моих запросов по некоторым значениям свойства конкретного объекта, давайте вызовем это свойство просто oprop. После того, как я понял, что с каждым новым ключом в oprop общее количество используемых полей в индексе items увеличивается, мне пришлось изменить отображение в индексе. Поэтому я установил отображение oprop на dynamic : false, поэтому ключи oprop больше не доступны для поиска (не индексируются).

Теперь в некоторых моих запросах мне нужно отсортировать результаты по индекс предметов по значениям oprop ключей. Я не знаю, как ElasticSearch все еще может дать мне возможность сортировать по этим значениям ключа.

Нужно ли использовать сценарии для сортировки? Имею ли я доступ к неиндексированным данным при использовании сценариев?

Почему-то я не думаю, что это хороший подход, и думаю, что в долгосрочной перспективе у меня возникнут проблемы с производительностью.

1 Ответ

0 голосов
/ 25 февраля 2020

Вы можете использовать сценарии для сортировки, поскольку данные будут храниться в поле _source, но это, вероятно, должно быть последним средством. Если вы знаете, какие поля должны быть отсортированы, вы можете просто добавить их в отображение и оставить oprop в качестве не динамического c поля в противном случае?

"properties": {
    "oprop": {
        "dynamic": false,
        "properties": {
            "sortable_key_1": {
                "type": "text"
            },
            "sortable_key_2": {
                "type": "text"
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...