2015-09-03 19:55:40 -04:00
|
|
|
[[condition-array-compare]]
|
2015-09-02 22:30:16 -04:00
|
|
|
==== Array Compare Condition
|
|
|
|
|
|
|
|
A watch <<condition, condition>> that compares an array of values in the <<watch-execution-context, Watch Execution Context Model>>
|
|
|
|
to a given value. The values in the model are identified by a path within that model.
|
|
|
|
|
|
|
|
==== Using an Array Compare Condition
|
|
|
|
|
|
|
|
The following snippet configures an `array_compare` condition that returns `true` if there is at least one bucket in the
|
|
|
|
aggregations buckets that has a `doc_count` higher than or equal to 25:
|
|
|
|
|
|
|
|
[source,json]
|
|
|
|
--------------------------------------------------
|
|
|
|
{
|
|
|
|
...
|
|
|
|
|
|
|
|
"condition": {
|
|
|
|
"array_compare": {
|
|
|
|
"ctx.payload.aggregations.top_tweeters.buckets" : { <1>
|
|
|
|
"path": "doc_count" <2>,
|
|
|
|
"gte": { <3>
|
|
|
|
"value": 25, <4>
|
|
|
|
"quantifier": "some" <5>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
...
|
|
|
|
}
|
|
|
|
--------------------------------------------------
|
|
|
|
<1> The field name is the path to the array (array path) in the execution context model
|
|
|
|
<2> The value of the field `path` (here `doc_count`) is the path to the value for each element of the array that the
|
|
|
|
comparison operator will be applied to
|
|
|
|
<3> The field name (here `gte`) is the name of the comparison operator
|
|
|
|
<4> The value of the field `value` in the comparison operator object is the comparison value
|
|
|
|
<5> The value of the field `quantifier` (`all` or `some`) specifies whether the comparison must be true for all or for
|
|
|
|
at least one of the values to evaluate the comparison to true
|
|
|
|
|
|
|
|
NOTE: The `path` element is optional and will default to `""` if not specified.
|
|
|
|
|
|
|
|
NOTE: The `quantifier` element is optional and will default to `"some"` if not specified.
|
|
|
|
|
|
|
|
The array path is a "dot-notation" expression that can reference the following variables in the watch context:
|
|
|
|
|
|
|
|
[options="header"]
|
|
|
|
|======
|
|
|
|
| Name | Description
|
|
|
|
| `ctx.metadata.*` | Any metadata associated with the watch.
|
|
|
|
| `ctx.payload.*` | The payload data loaded by the watch's input.
|
|
|
|
|======
|
|
|
|
|
|
|
|
This array path must resolve to an array.
|
|
|
|
|
2015-09-03 19:55:40 -04:00
|
|
|
The comparison operator can be any one of the operators supported by the
|
|
|
|
<<condition-compare-operators, Compare Condition>>.
|
2015-09-02 22:30:16 -04:00
|
|
|
|
|
|
|
The quantifier operator can be any one of the following:
|
|
|
|
|
|
|
|
[options="header"]
|
|
|
|
|======
|
|
|
|
| Name | Description
|
|
|
|
| `all` | Returns `true` when the resolved value compares `true` according to the comparison operator for all the elements in the array
|
|
|
|
| `some` | Returns `true` when the resolved value compares `true` according to the comparison operator for at least one element in the array
|
|
|
|
|======
|
|
|
|
|
|
|
|
NOTE: If the array is empty, `all` causes the comparison operator to evaluate to `true` and `some` causes the comparison
|
|
|
|
operator to evaluate to `false`.
|
|
|
|
|
2015-09-03 19:55:40 -04:00
|
|
|
NOTE: It is also possible to use date math expressions and values in the context model as in the <<condition-compare, Compare Condition>>.
|