Elasticsearch: предпочитаете ключевое слово или целочисленный тип данных для полей, в основном используемых в агрегатах? - PullRequest
1 голос
/ 12 марта 2019

Руководство по настройке производительности Elasticsearch гласит:

Тот факт, что некоторые данные являются числовыми, не означает, что они всегда должны отображаться как числовое поле. Способ, которым Elasticsearch индексирует числа, оптимизируется для запросов диапазона, в то время как поля ключевых слов лучше в терминальных запросах. Как правило, поля, хранящие идентификаторы, такие как ISBN или любой номер, идентифицирующий запись из другой базы данных, редко используются в запросах диапазона или агрегациях. Вот почему им может быть выгодно отображаться как ключевое слово, а не как целое или длинное.

Однако, это оставляет двусмысленность в отношении , какой тип данных выбрать для числовых данных, которые будут представлены только в агрегациях?

Например, поля, заполненные перечислением Java, должны храниться с использованием их порядкового значения (если вас больше интересует производительность, а не читаемость). Но это все равно оставляет вам два варианта: сохранять их как 0, 1, 2, ... (целое число) или как «0», «1», «2», ... (ключевое слово).

Если я собираюсь часто агрегировать в таком поле, не используя его так много в терминальных запросах, какой из двух вариантов мне следует выбрать с точки зрения производительности?

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