Настройки лимитов карты
Используйте следующие настройки, чтобы ограничить количество полей карты (созданных вручную или динамически) и предотвратить взрыв карты документов:
-
index.mapping.total_fields.limit -
Максимальное количество полей в индексе. Поля и объектные карты, а также псевдонимы полей учитываются в этом лимите. Также в этот лимит включены сопоставленные поля runtime. Значение по умолчанию —
1000.Предел установлен, чтобы предотвратить чрезмерное увеличение карт и запросов поиска. Более высокие значения могут привести к ухудшению производительности и проблемам с памятью, особенно в кластерах с высокой нагрузкой или небольшим объемом ресурсов.
Если вы увеличиваете эту настройку, рекомендуется также увеличить настройку
indices.query.bool.max_clause_count, которая ограничивает максимальное количество пунктов в запросе.Если ваши сопоставления полей содержат большой произвольный набор ключей, рассмотрите использование типа данных flattened или установку настройки индекса
index.mapping.total_fields.ignore_dynamic_beyond_limitв значениеtrue. -
index.mapping.total_fields.ignore_dynamic_beyond_limit - Эта настройка определяет, что происходит, когда динамически сопоставленное поле превышает предел общего количества полей. При значении
false(по умолчанию) запрос индекса документа, пытающегося добавить динамическое поле в карту, завершается ошибкой с сообщениемLimit of total fields [X] has been exceeded. При значенииtrueзапрос индекса не завершается ошибкой. Вместо этого поля, которые превышают предел, не добавляются в карту, аналогичноdynamic: false. Поля, которые не были добавлены в карту, будут добавлены в поле_ignored. Значение по умолчанию —false. -
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 - (Динамический, целое число) Максимальное количество измерений временных рядов для индекса. По умолчанию —
32768.
© 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/8.17/mapping-settings-limit.html