Spec-Zone.ru › Elasticsearch 7
›Руководство по Elasticsearch [7.17]

Модули индексов

Модули индексов — это модули, создаваемые для каждого индекса и управляющие всеми аспектами, связанными с этим индексом.

Настройки индекса

Настройки уровня индекса могут быть установлены для каждого индекса. Настройки могут быть:

статические
Их можно задать только при создании индекса или на закрытом индексе.
динамические
Их можно изменить на живом индексе, используя API обновления настроек индекса.

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

Статические настройки индекса

Ниже приведен список всех статических настроек индекса, которые не связаны с каким-либо конкретным модулем индекса:

index.number_of_shards

Количество первичных фрагментов, которые должен иметь индекс. По умолчанию — 1. Эта настройка может быть установлена только при создании индекса. Ее нельзя изменить на закрытом индексе.

Количество фрагментов ограничено 1024 на индекс. Это ограничение — мера предосторожности, чтобы предотвратить случайное создание индексов, которые могут дестабилизировать кластер из-за распределения ресурсов. Ограничение можно изменить, указав системную переменную export ES_JAVA_OPTS="-Des.index.max_number_of_shards=128" на каждом узле, входящем в кластер.

index.number_of_routing_shards

Целочисленное значение, используемое с index.number_of_shards для маршрутизации документов к первичному фрагменту. См. поле _routing.

Elasticsearch использует это значение при разделении индекса. Например, индекс с 5 фрагментами и установленным number_of_routing_shards в значение 30 (5 x 2 x 3) можно разделить на 2 или 3. Другими словами, он может быть разделен следующим образом:

  • 5 → 10 → 30 (разделение на 2, затем на 3)
  • 5 → 15 → 30 (разделение на 3, затем на 2)
  • 5 → 30 (разделение на 6)

Значение по умолчанию этой настройки зависит от количества первичных фрагментов в индексе. По умолчанию задано значение, позволяющее разделять на множители 2 до максимального значения в 1024 фрагмента.

В Elasticsearch 7.0.0 и более поздних версиях эта настройка влияет на то, как документы распределяются по фрагментам. При повторном индексировании старого индекса с настраиваемой маршрутизацией необходимо явно установить index.number_of_routing_shards для сохранения того же распределения документов. См. соответствующее изменение в поведении.

index.codec
Значение default сжимает хранимые данные с помощью сжатия LZ4, но его можно установить на best_compression, что использует DEFLATE для более высокого коэффициента сжатия, но за счет более медленной производительности хранимых полей. Если вы обновляете тип сжатия, новый тип будет применен после слияния сегментов. Слияние сегментов можно принудительно выполнить с помощью force merge.
index.routing_partition_size
Количество фрагментов, куда может попасть значение настраиваемого параметра маршрутизации. По умолчанию равно 1 и может быть установлено только при создании индекса. Это значение должно быть меньше, чем index.number_of_shards, если значение index.number_of_shards также равно 1. Подробнее о том, как используется эта настройка, см. в разделе Маршрутизация к разделу индекса.
index.soft_deletes.enabled
[7.6.0] Устарело в 7.6.0. Создание индексов с отключенными мягкими удалениями устарело и будет удалено в будущих версиях Elasticsearch. Указывает, включены ли мягкие удаления в индексе. Мягкие удаления могут настраиваться только при создании индекса и только для индексов, созданных на или после Elasticsearch 6.5.0. По умолчанию true.
index.soft_deletes.retention_lease.period
Максимальный период хранения аренды истории фрагмента, прежде чем она считается истекшей. Аренды истории фрагментов гарантируют, что мягкие удаления сохраняются во время слияний в индексе Lucene. Если мягкое удаление сливается до того, как оно может быть реплицировано на последователя, следующий процесс завершится ошибкой из-за отсутствия полной истории на лидере. По умолчанию 12h.
index.load_fixed_bitset_filters_eagerly
Указывает, загружаются ли кэшированные фильтры для вложенных запросов. Возможные значения — true (по умолчанию) и false.
index.shard.check_on_startup

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

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

Эта настройка определяет, выполняет ли Elasticsearch дополнительные проверки целостности при открытии фрагмента. Если эти проверки обнаружат повреждение, они не позволят открыть фрагмент. Она принимает следующие значения:

false
Не выполнять дополнительные проверки на предмет повреждения при открытии фрагмента. Это значение по умолчанию и рекомендуется.
checksum
Проверить, что контрольная сумма каждого файла в фрагменте совпадает с его содержимым. Это обнаружит случаи, когда данные, считанные с диска, отличаются от данных, которые Elasticsearch изначально записал, например, из-за незамеченного повреждения диска или других сбоев оборудования. Эти проверки требуют чтения всего фрагмента с диска, что занимает значительное время и полосу пропускания ввода-вывода и может повлиять на производительность кластера, вытесняя важные данные из кэша файловой системы.
true
Выполняет те же проверки, что и checksum, а также проверяет логические несоответствия в фрагменте, которые могут быть вызваны, например, повреждением данных во время записи из-за неисправной ОЗУ или других сбоев оборудования. Эти проверки требуют чтения всего фрагмента с диска, а затем выполнения различных проверок содержимого фрагмента, что занимает значительное время, ЦП и память.

Динамические настройки индекса

Ниже приведен список всех динамических настроек индекса, которые не связаны с каким-либо конкретным модулем индекса:

index.number_of_replicas
Количество реплик каждого первичного фрагмента. По умолчанию равно 1.
index.auto_expand_replicas

Автоматическое увеличение количества реплик в зависимости от количества узлов данных в кластере. Укажите диапазон значений через дефис (например, 0-5) или используйте значение all для верхнего предела (например, 0-all). По умолчанию false (т.е. отключено). Обратите внимание, что количество автоматически расширенных реплик учитывает только правила фильтрации размещения фрагментов, но игнорирует другие правила размещения, такие как общее количество фрагментов на узел, и это может привести к состоянию кластера YELLOW, если применимые правила не позволяют разместить все реплики.

Если верхняя граница равна all, то осознанность размещения фрагментов и cluster.routing.allocation.same_shard.host для этого индекса игнорируются.

index.search.idle.after
Сколько времени фрагмент может не получать запросы поиска или получения, прежде чем считается неактивным для поиска. (по умолчанию 30s)
index.refresh_interval
Частота выполнения операции обновления, которая делает недавние изменения в индексе видимыми для поиска. По умолчанию установлено значение 1s. Может быть установлено значение -1 для отключения обновления. Если этот параметр не задан явно, фрагменты, которые не получали трафика поиска не менее чем index.search.idle.after секунд, не будут получать фоновые обновления до получения запроса поиска. Поисковые запросы, которые попадают на неактивный фрагмент, где обновление ожидается, будут ждать следующего фонового обновления (в течение 1s). Это поведение направлено на автоматическое оптимизацию массового индексирования в случае по умолчанию, когда не выполняются никакие поиски. Для отказа от этого поведения необходимо явно установить значение 1s в качестве интервала обновления.
index.max_result_window
Максимальное значение from + size для поисков в этом индексе. По умолчанию установлено значение 10000. Запросы поиска занимают оперативную память и время, пропорционально from + size, и это ограничивает эту память. См. Прокрутка или Поиск после для более эффективной альтернативы увеличению этого значения.
index.max_inner_result_window
Максимальное значение from + size для определения внутренних совпадений и агрегаций верхних результатов для этого индекса. По умолчанию установлено значение 100. Внутренние совпадения и агрегация верхних результатов занимают оперативную память и время, пропорционально from + size, и это ограничивает эту память.
index.max_rescore_window
Максимальное значение window_size для запросов rescore в поисках этого индекса. По умолчанию установлено значение index.max_result_window, которое по умолчанию равно 10000. Запросы поиска занимают оперативную память и время, пропорционально max(window_size, from + size), и это ограничивает эту память.
index.max_docvalue_fields_search
Максимальное количество docvalue_fields, разрешенных в запросе. По умолчанию установлено значение 100. Поле doc-values является дорогостоящим, поскольку может потребовать поиск по каждому полю каждого документа.
index.max_script_fields
Максимальное количество script_fields, разрешенных в запросе. По умолчанию установлено значение 32.
index.max_ngram_diff
Максимальная разрешенная разница между min_gram и max_gram для NGramTokenizer и NGramTokenFilter. По умолчанию установлено значение 1.
index.max_shingle_diff
Максимальная разрешенная разница между max_shingle_size и min_shingle_size для shingle фильтра токенов. По умолчанию установлено значение 3.
index.max_refresh_listeners
Максимальное количество слушателей обновления, доступных на каждом фрагменте индекса. Эти слушатели используются для реализации refresh=wait_for.
index.analyze.max_token_count
Максимальное количество токенов, которые могут быть получены с помощью API _analyze. По умолчанию установлено значение 10000.
index.highlight.max_analyzed_offset
Максимальное количество символов, которые будут проанализированы для запроса выделения. Этот параметр применим только при запросе выделения текста, который был индексирован без смещений или векторов терминов. По умолчанию установлено значение 1000000.
index.max_terms_count
Максимальное количество терминов, которые могут использоваться в запросе Terms Query. По умолчанию установлено значение 65536.
index.max_regex_length
Максимальная длина регулярного выражения, которое может быть использовано в запросе Regexp Query. По умолчанию установлено значение 1000.
index.query.default_field

(строка или массив строк) Шаблоны подстановок (*) для соответствия одному или нескольким полям. Следующие типы запросов по умолчанию ищут эти соответствующие поля:

  • More like this
  • Multi-match
  • Query string
  • Simple query string

По умолчанию установлено значение *, которое соответствует всем полям, подходящим для запросов на уровне терминов, за исключением метаданных.

index.routing.allocation.enable

Управляет распределением фрагментов для этого индекса. Может быть установлено значение:

  • all (по умолчанию) - Разрешает распределение фрагментов для всех фрагментов.
  • primaries - Разрешает распределение фрагментов только для первичных фрагментов.
  • new_primaries - Разрешает распределение фрагментов только для вновь созданных первичных фрагментов.
  • none - Распределение фрагментов запрещено.
index.routing.rebalance.enable

Включает перебалансировку фрагментов для этого индекса. Может быть установлено значение:

  • all (по умолчанию) - Разрешает перебалансировку фрагментов для всех фрагментов.
  • primaries - Разрешает перебалансировку фрагментов только для первичных фрагментов.
  • replicas - Разрешает перебалансировку фрагментов только для фрагментов реплик.
  • none - Перебалансировка фрагментов запрещена.
index.gc_deletes
Длительность сохранения номера версии удаленного документа, доступного для последующих операций с версиями. По умолчанию установлено значение 60s.
index.default_pipeline
Значение по умолчанию конвейера обработки для индекса. Запросы к индексу завершатся ошибкой, если значение конвейера по умолчанию задано, и конвейер не существует. Значение по умолчанию может быть перезаписано с помощью параметра pipeline. Специальное имя конвейера _none указывает на то, что конвейер обработки не должен быть запущен.
index.final_pipeline

Конечный конвейер обработки для индекса. Запросы индексирования завершатся ошибкой, если конечный конвейер задан, и конвейер не существует. Конечный конвейер всегда выполняется после конвейера запроса (если указан) и конвейера по умолчанию (если он существует). Специальное имя конвейера _none указывает на то, что конвейер обработки не будет запущен.

Вы не можете использовать конечный конвейер для изменения поля _index. Если конвейер пытается изменить поле _index, запрос индексирования завершится ошибкой.

index.hidden
Указывает, следует ли по умолчанию скрывать индекс. Скрытые индексы не возвращаются по умолчанию при использовании выражения с подстановкой. Это поведение контролируется в каждом запросе с помощью параметра expand_wildcards. Возможные значения: true и false (по умолчанию).

Настройки в других модулях индекса

Другие настройки индекса доступны в модулях индекса:

Анализ
Настройки для определения анализаторов, токенизаторов, фильтров токенов и фильтров символов.
Распределение фрагментов индекса
Управление тем, где, когда и как фрагменты распределяются по узлам.
Картирование
Включение или отключение динамического картирования для индекса.
Слияние
Управление тем, как фрагменты объединяются фоновым процессом слияния.
Схожести
Настройка пользовательских настроек схожести для настройки того, как оцениваются результаты поиска.
Замедленная запись
Управление тем, как регистрируются медленные запросы и запросы извлечения.
Хранилище
Настройка типа файловой системы, используемой для доступа к данным фрагмента.
Журнал транзакций
Управление журналом транзакций и фоновыми операциями сброса.
Сохранение истории
Управление сохранением истории операций в индексе.
Давление индексирования
Настройка пределов обратной связи при индексировании.

Настройки X-Pack для индекса

Управление жизненным циклом индекса
Укажите политику жизненного цикла и псевдоним перехода для индекса.

© 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/index-modules.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API