Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Watcher ›Преобразования полезной нагрузки

Преобразование полезной нагрузки поиска Watcher

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

{
  "transform" : {
    "search" : {
      "request" : {
        "body" : { "query" : { "match_all" : {} }}
      }
    }
  }
}

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

{
  "transform" : {
    "search" : {
      "request" : {
        "indices" : [ "events-*" ],
        "body" : {
          "size" : 0,
          "query" : {
            "match" : { "priority" : "error"}
          }
        }
      }
    }
  }
}

В следующей таблице перечислены все доступные настройки для преобразования полезной нагрузки поиска:

Таблица 90. Настройки преобразования полезной нагрузки поиска

Имя Обязательно Значение по умолчанию Описание

request.search_type

нет

query_then_fetch

Тип поиска type.

request.indices

нет

все индексы

Один или несколько индексов для поиска.

request.body

нет

match_all запрос

Тело запроса. Тело запроса request body имеет ту же структуру, что и обычно отправляется в теле REST-запроса. _search Тело может содержать статический текст или включать mustache шаблоны.

request.indices_options.expand_wildcards

нет

open

Определяет, как расширять маски индексов. Массив, состоящий из комбинации open, closed и hidden. Или значение none или all. (см. синтаксис для нескольких целей)

request.indices_options.ignore_unavailable

нет

true

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

request.indices_options.allow_no_indices

нет

true

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

request.template

нет

-

Тело шаблона поиска. См. настройку шаблонов для получения дополнительной информации.

timeout

нет

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

Spec-Zone.ru

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