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