Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Watcher ›Действия Watcher

Действие индексирования Watcher

Используйте действие index для индексирования данных в Elasticsearch. Смотрите атрибуты действия индексирования для поддерживаемых атрибутов.

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

Следующий фрагмент демонстрирует простое определение действия index:

"actions" : {
  "index_payload" : { 
    "condition": { ... }, 
    "transform": { ... }, 
    "index" : {
      "index" : "my-index-000001", 
      "doc_id": "my-id" 
    }
  }
}

Идентификатор действия

Необязательное условие для ограничения выполнения действия

Необязательное преобразование для преобразования полезной нагрузки и подготовки данных для индексирования

Индекс, псевдоним или поток данных, в который будут записаны данные

Необязательное _id для документа

Атрибуты действия индексирования

Имя Требуется По умолчанию Описание

index

да*

-

Индекс, псевдоним или поток данных для индексирования. Также поддерживаются выражения с разметкой дат, например, <my-index-{now/d}>.

*Если вы динамически задаете значение _index, этот параметр не требуется. См. Поддержка нескольких документов.

doc_id

нет

-

Необязательный _id документа.

op_type

нет

index

Тип операции индексирования. Должно быть одно из значений index или create. Должно быть create, если index является потоком данных.

execution_time_field

нет

-

Поле, которое будет хранить/индексировать время выполнения проверки.

timeout

нет

60с

Таймаут ожидания ответа вызова API индексирования. Если ответ не возвращен в течение этого времени, действие индексирования завершается с ошибкой таймаута. Эта настройка переопределяет значения таймаутов по умолчанию.

refresh

нет

-

Необязательная настройка политики обновления для запроса записи

Поддержка нескольких документов

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

Действие индексирования хорошо работает с преобразованиями благодаря поддержке специального поля полезной нагрузки _doc.

При определении документа для индексирования действие индексирования сначала ищет поле _doc в полезной нагрузке. При отсутствии поля полезная нагрузка индексируется как один документ.

Когда поле _doc существует, если поле содержит объект, оно извлекается и индексируется как один документ. Если поле содержит массив объектов, каждый объект обрабатывается как документ, и действие индексирования индексирует все из них в массив.

Значение _index или _id может быть добавлено к каждому документу для динамического задания индекса и идентификатора индексируемого документа.

Следующий фрагмент демонстрирует определение действия index для нескольких документов:

"actions": {
  "index_payload": {
    "transform": {
      "script": """
      def documents = ctx.payload.hits.hits.stream()
        .map(hit -> [
          "_index": "my-index-000001", 
          "_id": hit._id, 
          "severity": "Sev: " + hit._source.severity 
        ])
        .collect(Collectors.toList());
      return [ "_doc" : documents]; 
      """
    },
    "index": {} 
  }
}

Индекс документа

Необязательное _id для документа

Новое поле severity, полученное из исходного документа

Поле полезной нагрузки _doc, представляющее собой массив документов

Поскольку поле _index было указано для каждого документа, оно должно быть пустым

© 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/actions-index.html

Spec-Zone.ru

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