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

Блоки индексов

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

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

Следующие динамические настройки индекса определяют блоки, присутствующие в индексе:

index.blocks.read_only
Устанавливается в значение true, чтобы сделать индекс и метаданные индекса только для чтения, false, чтобы разрешить запись и изменения метаданных.
index.blocks.read_only_allow_delete

Аналогично index.blocks.read_only, но также позволяет удалять индекс для освобождения ресурсов. Диск-базированный распределения фрагментов может автоматически добавлять и удалять этот блок.

Удаление документов из индекса для освобождения ресурсов, а не удаление самого индекса, может со временем увеличивать размер индекса. Когда index.blocks.read_only_allow_delete установлено в значение true, удаление документов запрещено. Однако удаление самого индекса освобождает блок индекса только для чтения и делает ресурсы доступными практически мгновенно.

Elasticsearch автоматически добавляет и удаляет блок индекса только для чтения, когда использование диска падает ниже высокой отметки, контролируемой параметром cluster.routing.allocation.disk.watermark.flood_stage.

index.blocks.read
Устанавливается в значение true, чтобы отключить операции чтения в индексе.
index.blocks.write
Устанавливается в значение true, чтобы отключить операции записи данных в индекс. В отличие от read_only, эта настройка не влияет на метаданные. Например, вы можете закрыть индекс с блоком write, но не можете закрыть индекс с блоком read_only.
index.blocks.metadata
Устанавливается в значение true, чтобы отключить чтение и запись метаданных индекса.

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

Добавляет блок индекса в индекс.

PUT /my-index-000001/_block/write

Запрос

PUT /<index>/_block/<block>

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

<index>

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

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

<block>

(Обязательно, строка) Тип блока, который нужно добавить в индекс.

Допустимые значения для <block>
metadata
Отключение изменений метаданных, таких как закрытие индекса.
read
Отключение операций чтения.
read_only
Отключение операций записи и изменений метаданных.
write
Отключение операций записи. Однако изменения метаданных по-прежнему разрешены.

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

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.
master_timeout
(Необязательно, единицы времени) Период ожидания подключения к мастер-узлу. Если ответ не получен до истечения срока ожидания, запрос завершается неудачей и возвращает ошибку. По умолчанию 30s.
timeout
(Необязательно, единицы времени) Период ожидания ответа. Если ответ не получен до истечения срока ожидания, запрос завершается неудачей и возвращает ошибку. По умолчанию 30s.

Примеры

Следующий пример демонстрирует добавление блока индекса:

PUT /my-index-000001/_block/write

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

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "indices" : [ {
    "name" : "my-index-000001",
    "blocked" : 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/7.17/index-modules-blocks.html

Spec-Zone.ru

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