Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Watcher ›Условиям Watcher

Условие сравнения Watcher

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

Таблица 77. Поддерживаемые операторы сравнения

Имя Описание

eq

Возвращает true, когда результирующее значение равно заданному (применяется к числовым, строковым, списковым, объектным и значениям)

not_eq

Возвращает true, когда результирующее значение не равно заданному (применяется к числовым, строковым, списковым, объектным и нулевым значениям)

gt

Возвращает true, когда результирующее значение больше заданного (применяется к числовым и строковым значениям)

gte

Возвращает true, когда результирующее значение больше или равно заданному (применяется к числовым и строковым значениям)

lt

Возвращает true, когда результирующее значение меньше заданного (применяется к числовым и строковым значениям)

lte

Возвращает true, когда результирующее значение меньше или равно заданному (применяется к числовым и строковым значениям)

Использование условия сравнения

Чтобы использовать условие compare, укажите значение в контексте выполнения, которое вы хотите оценить, оператор сравнения и значение, с которым вы хотите сравнить. Например, следующее условие compare возвращает true, если количество общих совпадений в результатах поиска больше или равно 5:

{
  "condition" : {
    "compare" : {
      "ctx.payload.hits.total" : { 
        "gte" : 5 
      }
    }
  }
}

Используйте обозначение точкой для ссылки на значение в контексте выполнения.

Укажите оператор сравнения и значение, с которым вы хотите сравнить.

При сравнении дат и времени можно использовать выражения для работы с датами вида <{expression}>. Например, следующее выражение возвращает true, если наблюдение было выполнено в течение последних пяти минут:

{
  "condition" : {
    "compare" : {
      "ctx.execution_time" : {
        "gte" : "<{now-5m}>"
      }
    }
  }
}

Вы также можете сравнить два значения в контексте выполнения, указав сравниваемое значение в виде пути вида {{path}}. Например, следующее условие сравнивает ctx.payload.aggregations.status.buckets.error.doc_count с ctx.payload.aggregations.handled.buckets.true.doc_count:

{
  "condition" : {
    "compare" : {
      "ctx.payload.aggregations.status.buckets.error.doc_count" : {
        "not_eq" : "{{ctx.payload.aggregations.handled.buckets.true.doc_count}}"
      }
    }
  }
}

Доступ к значениям в контексте выполнения

Вы используете «обозначение точкой» для доступа к значениям в контексте выполнения. Значения, загруженные в контекст выполнения вводом, имеют префикс ctx.payload.

Вы можете ссылаться на элементы в массивах, используя их индексы, начинающиеся с нуля. Например, чтобы получить доступ к третьему элементу массива ctx.payload.hits.hits, используйте ctx.payload.hits.hits.2.

Имя Описание

ctx.watch_id

Идентификатор наблюдения, которое в настоящее время выполняется.

ctx.execution_time

Время начала выполнения этого наблюдения.

ctx.trigger.triggered_time

Время запуска этого наблюдения.

ctx.trigger.scheduled_time

Время, когда это наблюдение должно было быть запущено.

ctx.metadata.*

Любые метаданные, связанные с наблюдением.

ctx.payload.*

Данные полезной нагрузки, загруженные входом наблюдения.

© 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/condition-compare.html

Spec-Zone.ru

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