Elasticsearch Flush

Elasticsearch предоставляет API-интерфейс flush, который вызывает операции flush индекса или потока данных. Flush (Промывка) индекса или потока данных гарантирует, что данные, хранящиеся в журнале транзакций, будут перемещены в индекс Lucene.

Перемещение данных из журнала транзакций в индекс Lucene устраняет необходимость в управлении еще одной копией журнала транзакций. Это также позволяет Elasticsearch освободить дисковое пространство за счет удаления ненужных файлов генерации.

В этой заметке мы рассмотрим API Elasticsearch Flush, позволяющий нам промывать один или несколько индексов или потоков данных.

Синтаксис API

В приведенном ниже фрагменте показан синтаксис использования Elasticsearch Flush API.

Параметр target может быть именем индекса, потока данных или индекса. Также можно указать несколько индексов или потоков данных в виде списка, разделенного запятыми. Следует помнить, что Elasticsearch будет промывать журнал транзакций в указанных целях.

Если необходимо промыть все индексы и потоки данных в кластере, можно пропустить значение target, как показано в синтаксисе ниже:

Можно также использовать звездочку или параметр _all.

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

API поддерживает следующие параметры, позволяющие изменять поведение запроса и ответа.

  • allow_no_inidices - разрешает возвращать ошибку, если в целевом значении переданы какие-либо подстановочные выражения или псевдонимы.
  • expand_wildcards - позволяет расширить переданные символы и сопоставить их любому индексу или потоку данных.
  • force - позволяет принудительно выполнить операцию flush, несмотря на отсутствие данных, доступных для фиксации в индексе Lucene.
  • ignore_unavailable - игнорирует, если цель отсутствует или закрыта.
  • wait_if_ongoing - блокирует операцию flush до тех пор, пока не завершатся все остальные выполняющиеся операции flush.

Пример - Elasticsearch Flush индекса

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

Приведенный выше запрос промывает индекс с именем 'disney'. Результирующий вывод выглядит так:

Пример 2 - Промывка нескольких индексов и потоков данных в Elasticsearch

Для промывки нескольких индексов и потоков данных мы можем указать их в виде списка, разделенного запятыми, как показано на рисунке:

Полученный результат:

Пример 3 - Elasticsearch промывает все индексы и потоки данных в кластере

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

Полученный результат:

Заключение

В этом посте вы узнали, как использовать Elasticsearch Flush API для промывки журнала транзакций из индекса или потока данных в индекс Lucene.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий