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

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

Справочник нового API

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

Открывает закрытый индекс. Для потоков данных API открывает все закрытые базовые индексы.

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

Запрос

POST /<target>/_open

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

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

Описание

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

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

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

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

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

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

Ожидание активных фрагментов

Поскольку открытие или закрытие индекса выделяет его фрагменты, параметр wait_for_active_shards при создании индекса также применяется к действиям _open и _close индекса.

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

<target>

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

По умолчанию вы должны явно указать индексы, которые используете для ограничения запроса. Чтобы ограничить запрос с помощью _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
Шаблоны подстановки не принимаются.

По умолчанию — closed.

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

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

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

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

Примеры

Следующий запрос повторно открывает закрытый индекс с именем my-index-000001.

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

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

{
  "acknowledged" : true,
  "shards_acknowledged" : 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-open-close.html

Spec-Zone.ru

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