Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›REST API ›API индексов

API обновления настроек индекса

Изменяет динамическую настройку индекса в реальном времени.

Для потоков данных изменения настроек индекса по умолчанию применяются ко всем базовым индексам.

PUT /my-index-000001/_settings
{
  "index" : {
    "number_of_replicas" : 2
  }
}

Запрос

PUT /<target>/_settings

Предварительные условия

  • Если функции безопасности Elasticsearch включены, у вас должна быть manage привилегия доступа к индексу для целевого потока данных, индекса или алиаса.

Параметры пути

<target>
(Необязательно, строка) Список потоков данных, индексов и алиасов, разделенных запятыми, используемый для ограничения запроса. Поддерживаются подстановочные знаки (*). Чтобы нацелиться на все потоки данных и индексы, опустите этот параметр или используйте * или _all.

Параметры запроса

allow_no_indices

(Необязательно, логическое значение) Если false, запрос возвращает ошибку, если какой-либо шаблон подстановки, алиас индекса или _all значение нацелены только на отсутствующие или закрытые индексы. Это поведение применяется даже в том случае, если запрос нацелен на другие открытые индексы. Например, запрос, нацеленный на foo*,bar*, возвращает ошибку, если индекс начинается с foo, но ни один индекс не начинается с bar.

По умолчанию false.

expand_wildcards

(Необязательно, строка) Тип индекса, с которым могут совпадать шаблоны подстановки. Если запрос может нацеливаться на потоки данных, этот аргумент определяет, соответствуют ли шаблоны подстановки скрытым потокам данных. Поддерживаются значения, разделенные запятыми, например, open,hidden. Допустимые значения:

all
Совпадает с любым потоком данных или индексом, включая скрытые.
open
Совпадает с открытыми индексами, не являющимися скрытыми. Также совпадает с любым нескрытым потоком данных.
closed
Совпадает с закрытыми индексами, не являющимися скрытыми. Также совпадает с любым нескрытым потоком данных. Потоки данных не могут быть закрыты.
hidden
Совпадает со скрытыми потоками данных и скрытыми индексами. Должно сочетаться с open, closed или обоими.
none
Шаблоны подстановки не принимаются.

По умолчанию open.

flat_settings
(Необязательно, логическое значение) Если true, возвращает настройки в плоском формате. По умолчанию false.
ignore_unavailable
(Необязательно, логическое значение) Если false, запрос возвращает ошибку, если он нацелен на отсутствующий или закрытый индекс. По умолчанию false.
preserve_existing
(Необязательно, логическое значение) Если true, существующие настройки индекса остаются неизменными. По умолчанию false.
master_timeout
(Необязательно, единицы времени) Период ожидания подключения к узлу мастера. Если ответ не получен до истечения срока ожидания, запрос завершается ошибкой. По умолчанию 30s.
timeout
(Необязательно, единицы времени) Период ожидания ответа. Если ответ не получен до истечения срока ожидания, запрос завершается ошибкой. По умолчанию 30s.

Тело запроса

settings
(Необязательно, объект настроек индекса) Параметры конфигурации индекса. См. Настройки индекса.

Примеры

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

Чтобы вернуть настройку к значению по умолчанию, используйте null. Например:

PUT /my-index-000001/_settings
{
  "index" : {
    "refresh_interval" : null
  }
}

Список настроек индекса, которые могут быть динамически обновлены в активных индексах, можно найти в Модулях индекса. Для сохранения существующих настроек от обновления можно установить параметр запроса preserve_existing в значение true.

Использование массовой индексации

Например, API обновления настроек можно использовать для динамического изменения индекса с целью большей производительности для массовой индексации и последующего перехода к состоянию индекса для реального времени. Перед началом массовой индексации используйте:

PUT /my-index-000001/_settings
{
  "index" : {
    "refresh_interval" : "-1"
  }
}

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

Затем, после завершения массовой индексации, настройки можно обновить (например, вернуть к значениям по умолчанию):

PUT /my-index-000001/_settings
{
  "index" : {
    "refresh_interval" : "1s"
  }
}

И необходимо выполнить слияние:

POST /my-index-000001/_forcemerge?max_num_segments=5

Обновление анализа индекса

Вы можете определять новые анализаторы только в закрытых индексах.

Чтобы добавить анализатор, необходимо закрыть индекс, определить анализатор и открыть индекс.

Вы не можете закрыть индекс записи для потока данных.

Чтобы обновить анализатор для индекса записи потока данных и будущих базовых индексов, обновите анализатор в шаблоне индекса, используемом потоком. Затем переключите поток данных, чтобы применить новый анализатор к индексу записи потока данных и будущим базовым индексам. Это влияет на поиск и все новые данные, добавленные в поток после переключения. Однако это не влияет на базовые индексы потока данных или их существующие данные.

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

Например, следующие команды добавляют анализатор content в индекс my-index-000001:

POST /my-index-000001/_close?wait_for_active_shards=0

PUT /my-index-000001/_settings
{
  "analysis" : {
    "analyzer":{
      "content":{
        "type":"custom",
        "tokenizer":"whitespace"
      }
    }
  }
}

POST /my-index-000001/_open

© 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/indices-update-settings.html

Spec-Zone.ru

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