Преобразование полезной нагрузки поиска Watcher
Преобразование полезной нагрузки, выполняющее поиск в кластере и заменяющее текущую полезную нагрузку в контексте выполнения наблюдения полученным ответом поиска. Следующий фрагмент показывает, как можно определить простое преобразование поиска на уровне наблюдения:
{
"transform" : {
"search" : {
"request" : {
"body" : { "query" : { "match_all" : {} }}
}
}
}
} Как и любой другой конструктор на основе поиска, можно использовать весь API поиска, поддерживаемый Elasticsearch. Например, следующее преобразование полезной нагрузки поиска выполняет поиск по всем индексам событий, сопоставляя события с приоритетом error:
{
"transform" : {
"search" : {
"request" : {
"indices" : [ "events-*" ],
"body" : {
"size" : 0,
"query" : {
"match" : { "priority" : "error"}
}
}
}
}
}
} В следующей таблице перечислены все доступные настройки для преобразования полезной нагрузки поиска:
Таблица 90. Настройки преобразования полезной нагрузки поиска
| Имя | Обязательно | Значение по умолчанию | Описание |
|---|---|---|---|
| нет | query_then_fetch | Тип поиска type. |
| нет | все индексы | Один или несколько индексов для поиска. |
| нет |
| Тело запроса. Тело запроса request body имеет ту же структуру, что и обычно отправляется в теле REST-запроса. |
| нет |
| Определяет, как расширять маски индексов. Массив, состоящий из комбинации |
| нет |
| Булево значение, определяющее, должен ли поиск снисходительно игнорировать недоступные индексы (см. синтаксис для нескольких целей) |
| нет |
| Булево значение, определяющее, должен ли поиск снисходительно возвращать нулевые результаты, когда не разрешены никакие индексы (см. синтаксис для нескольких целей) |
| нет | - | Тело шаблона поиска. См. настройку шаблонов для получения дополнительной информации. |
| нет | 30с | Таймаут ожидания ответа API поиска. Если ответ не получен в течение этого времени, преобразование полезной нагрузки поиска завершается с ошибкой по таймауту. Эта настройка переопределяет значения таймаута по умолчанию. |
Поддержка шаблонов
Преобразование полезной нагрузки поиска поддерживает шаблоны Mustache. Это может быть частью определения тела или, альтернативно, указанием на существующий шаблон (определенный в файле или сохраненный как скрипт в Elasticsearch).
Например, следующий фрагмент показывает поиск, который ссылается на запланированное время наблюдения:
{
"transform" : {
"search" : {
"request" : {
"indices" : [ "logstash-*" ],
"body" : {
"size" : 0,
"query" : {
"bool" : {
"must" : {
"match" : { "priority" : "error"}
},
"filter" : [
{
"range" : {
"@timestamp" : {
"gte" : "{{ctx.trigger.scheduled_time}}||-30s",
"lte" : "{{ctx.trigger.triggered_time}}"
}
}
}
]
}
}
}
}
}
}
} Модель шаблона объединяет предоставленные template.params параметры и стандартную модель контекста выполнения наблюдения.
Следующий пример демонстрирует использование шаблонов, которые ссылаются на предоставленные параметры:
{
"transform" : {
"search" : {
"request" : {
"indices" : [ "logstash-*" ],
"template" : {
"source" : {
"size" : 0,
"query" : {
"bool" : {
"must" : {
"match" : { "priority" : "{{priority}}"}
},
"filter" : [
{
"range" : {
"@timestamp" : {
"gte" : "{{ctx.trigger.scheduled_time}}||-30s",
"lte" : "{{ctx.trigger.triggered_time}}"
}
}
}
]
}
},
"params" : {
"priority" : "error"
}
}
}
}
}
}
}
© 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/transform-search.html