Настройки ограничений на карты
Используйте следующие настройки, чтобы ограничить количество полей карты (созданных вручную или динамически) и предотвратить взрыв карты документов:
-
index.mapping.total_fields.limit -
Максимальное количество полей в индексе. Поля и объекты карты, а также псевдонимы полей учитываются в этом лимите. Значение по умолчанию —
1000.Ограничение введено для предотвращения того, чтобы карты и запросы стали слишком большими. Более высокие значения могут привести к снижению производительности и проблемам с памятью, особенно в кластерах с высокой нагрузкой или малым количеством ресурсов.
Если вы увеличиваете это значение, рекомендуется также увеличить настройку
indices.query.bool.max_clause_count, которая ограничивает максимальное количество булевых условий в запросе.Если ваши карты полей содержат большой произвольный набор ключей, рассмотрите использование типа данных flattened.
-
index.mapping.depth.limit - Максимальная глубина поля, которая измеряется как количество внутренних объектов. Например, если все поля определены на уровне корневого объекта, то глубина равна
1. Если есть одна карта объекта, то глубина равна2и т. д. Значение по умолчанию —20.
-
index.mapping.nested_fields.limit - Максимальное количество уникальных
nestedкарт в индексе. Типnestedследует использовать только в особых случаях, когда массивы объектов необходимо запрашивать независимо друг от друга. Чтобы защититься от плохо спроектированных карт, эта настройка ограничивает количество уникальных типовnestedна индекс. Значение по умолчанию —50.
-
index.mapping.nested_objects.limit - Максимальное количество вложенных JSON-объектов, которые может содержать один документ по всем типам
nested. Это ограничение помогает предотвратить ошибки исчерпания памяти, когда документ содержит слишком много вложенных объектов. Значение по умолчанию —10000. -
index.mapping.field_name_length.limit - Настройка максимальной длины имени поля. Эта настройка не очень хорошо решает проблему взрыва карт, но все равно может быть полезной, если вы хотите ограничить длину имени поля. Обычно нет необходимости устанавливать это значение. Значение по умолчанию подходит, если пользователь не начинает добавлять огромное количество полей с очень длинными именами. По умолчанию —
Long.MAX_VALUE(без ограничения).
-
index.mapping.dimension_fields.limit -
[превью] Данная функциональность находится в техническом превью и может быть изменена или удалена в будущих выпусках. Elastic будет работать над устранением любых проблем, но функции в техническом превью не подпадают под SLA поддержки официальных функций GA. (Динамические, целое число)
Для внутреннего использования Elastic.
Максимальное количество временных рядов размерностей для индекса. По умолчанию —
16.Вы можете пометить поле как размерность, используя параметр карты
time_series_dimension.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/mapping-settings-limit.html