Действие индексирования Watcher
Используйте действие index для индексирования данных в Elasticsearch. Смотрите атрибуты действия индексирования для поддерживаемых атрибутов.
Настройка действий индексирования
Следующий фрагмент демонстрирует простое определение действия index:
"actions" : {
"index_payload" : {
"condition": { ... },
"transform": { ... },
"index" : {
"index" : "my-index-000001",
"doc_id": "my-id"
}
}
} | Идентификатор действия | |
| Необязательное условие для ограничения выполнения действия | |
| Необязательное преобразование для преобразования полезной нагрузки и подготовки данных для индексирования | |
| Индекс, псевдоним или поток данных, в который будут записаны данные | |
| Необязательное |
Атрибуты действия индексирования
| Имя | Требуется | По умолчанию | Описание |
|---|---|---|---|
| да* | - | Индекс, псевдоним или поток данных для индексирования. Также поддерживаются выражения с разметкой дат, например, *Если вы динамически задаете значение |
| нет | - | Необязательный |
| нет |
| Тип операции индексирования. Должно быть одно из значений |
| нет | - | Поле, которое будет хранить/индексировать время выполнения проверки. |
| нет | 60с | Таймаут ожидания ответа вызова API индексирования. Если ответ не возвращен в течение этого времени, действие индексирования завершается с ошибкой таймаута. Эта настройка переопределяет значения таймаутов по умолчанию. |
| нет | - | Необязательная настройка политики обновления для запроса записи |
Поддержка нескольких документов
Как и во всех других действиях, вы можете использовать преобразование для замены текущей полезной нагрузки контекста выполнения на другую и тем самым изменить документ, который будет в конечном итоге проиндексирован.
Действие индексирования хорошо работает с преобразованиями благодаря поддержке специального поля полезной нагрузки _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": {}
}
} | Индекс документа | |
| Необязательное | |
| Новое поле | |
| Поле полезной нагрузки | |
| Поскольку поле |
© 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