Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›REST API ›API индексов

API закрытия индекса

Новая справка по API

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

Закрывает индекс.

resp = client.indices.close(
    index="my-index-000001",
)
print(resp)
response = client.indices.close(
  index: 'my-index-000001'
)
puts response
const response = await client.indices.close({
  index: "my-index-000001",
});
console.log(response);
POST /my-index-000001/_close

Запрос

POST /<index>/_close

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

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

Описание

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

Закрытый индекс заблокирован для операций чтения/записи и не позволяет выполнять все операции, разрешенные открытым индексам. Невозможно добавлять документы или искать документы в закрытом индексе. Это позволяет закрытым индексам не поддерживать внутренние структуры данных для индексирования или поиска документов, что приводит к меньшей нагрузке на кластер.

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

Вы можете открывать и закрывать несколько индексов. Ошибка будет выброшена, если запрос явно ссылается на отсутствующий индекс. Это поведение можно отключить, используя параметр ignore_unavailable=true.

По умолчанию необходимо явно указать имена индексов, которые вы открываете или закрываете. Чтобы открыть или закрыть индексы с использованием _all, * или других выражений с подстановкой, измените значение action.destructive_requires_name на false. Это значение также может быть изменено с помощью API обновления настроек кластера.

Закрытые индексы потребляют значительное количество дискового пространства, что может вызвать проблемы в управляемых средах. Закрытие индексов можно отключить с помощью API настроек кластера, установив значение cluster.indices.close.enable на false. По умолчанию значение равно true.

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

<index>

(Необязательно, строка) Список индексов с разделителем запятая или выражение с подстановкой для ограничения запроса.

Для закрытия всех индексов используйте _all или *. По умолчанию необходимо явно указать имена индексов, которые вы закрываете. Для указания индексов для закрытия с использованием _all, * или других выражений с подстановкой, измените значение action.destructive_requires_name на false. Вы можете обновить это значение в файле elasticsearch.yml или с помощью API обновления настроек кластера.

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

allow_no_indices

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

По умолчанию значение равно true.

expand_wildcards

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

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

По умолчанию значение равно open.

ignore_unavailable
(Необязательно, логическое значение) Если false, запрос возвращает ошибку, если он относится к отсутствующему или закрытому индексу. По умолчанию значение равно false.
wait_for_active_shards

(Необязательно, строка) Количество копий каждого фрагмента, которые должны быть активны перед продолжением операции. Установите значение all или любое неотрицательное целое число до общего количества копий каждого фрагмента в индексе (number_of_replicas+1). По умолчанию значение равно 1, что означает ожидание активации каждого первичного фрагмента.

См. Активные фрагменты.

master_timeout
(Необязательно, единицы времени) Период ожидания узла мастера. Если узел мастера недоступен до истечения таймаута, запрос завершается ошибкой. По умолчанию значение равно 30s. Также может быть установлено значение -1, чтобы указать, что запрос никогда не должен истекать.
timeout
(Необязательно, единицы времени) Период ожидания ответа от всех соответствующих узлов в кластере после обновления метаданных кластера. Если ответ не получен до истечения таймаута, обновление метаданных кластера все равно применяется, но ответ укажет, что оно не было полностью подтверждено. По умолчанию значение равно 30s. Также может быть установлено значение -1, чтобы указать, что запрос никогда не должен истекать.

Примеры

Следующий пример демонстрирует, как закрыть индекс:

resp = client.indices.close(
    index="my-index-000001",
)
print(resp)
response = client.indices.close(
  index: 'my-index-000001'
)
puts response
const response = await client.indices.close({
  index: "my-index-000001",
});
console.log(response);
POST /my-index-000001/_close

API возвращает следующий ответ:

{
  "acknowledged": true,
  "shards_acknowledged": true,
  "indices": {
    "my-index-000001": {
      "closed": true
    }
  }
}

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

Spec-Zone.ru

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