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