Сортировка, агрегирование и доступ к значениям полей в сценариях требует другого шаблона доступа к данным.Вместо того, чтобы искать термин и находить документы, нам нужно иметь возможность искать документ и находить в нем термины, которые он содержит.
Эта цитата из справочной документации Elasticsearch подразумевает для меняэта сортировка происходит на неанализированном уровне, но я также решил перепроверить и провести несколько тестов на ней.
В Elasticsearch у нас есть возможность выполнять сортировку по неанализированным полям - например, ключевое слово .В этих полях для сортировки используются значения doc, и после теста я могу сказать, что использует предварительно проанализированные значения для сортировки по кодам, представляющим символы (цифры, прописные буквы, строчные буквы)
Также возможно выполнить сортировку по текстовым полям с некоторыми оговорками и настройками (например, необходимо включить fielddata , поскольку текстовые поля не поддерживают doc_values )
В этом случае документы сортируются в соответствии с проанализированными значениями .Конечно, многое зависит от анализа конвейера, так как он может делать разные вещи с текстом.Также, как напоминание:
Fielddata может занимать много места в куче, особенно при загрузке текстовых полей с большим количеством элементов.После того, как полевые данные были загружены в кучу, они остаются там на время жизни сегмента.Кроме того, загрузка полевых данных является дорогостоящим процессом, из-за которого пользователи могут столкнуться с задержками.Вот почему полевые данные по умолчанию отключены.