Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Watcher ›Условия Watcher

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

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

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

Имя Описание

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

Spec-Zone.ru

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