DBAtlas · Атлас эксплуатации баз данных

illegal_argument_exception_fielddata: illegal_argument_exception: fielddata по умолчанию отключена для текстовых полей. Задайте fielddata=true для [your_field], чтобы загрузить fielddata в память

Elasticsearch

Что это значит?

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

Почему возникает?

Агрегация/сортировка применена непосредственно к текстовому полю. В Elasticsearch text используется для полнотекстового поиска, а keyword — для агрегации/сортировки по точным значениям; их смешение приводит к этой ошибке.

Как исправить

Для агрегации/сортировки используйте подполе keyword (например, "my_field.keyword"). Если поле только текстовое, добавьте в mapping подполе keyword (multi-field) и выполните _reindex. Включение fielddata для текстового поля (fielddata=true) возможно, но не рекомендуется из-за большого потребления памяти и риска срабатывания circuit breaker; используйте его только при крайней необходимости.

Открыть в DBAtlas →

Ещё по этой СУБД