原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/action-foreach.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/action-foreach.html
本地英文版地址: ../en/action-foreach.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
Running an action for each element in an arrayedit
You can use the foreach
field in an action to trigger the configured action
for every element within that array.
In order to protect from long running watches, you can use the max_iterations
field to limit the maximum amount of runs that each watch executes. If this limit
is reached, the execution is gracefully stopped. If not set, this field defaults
to one hundred.
PUT _watcher/watch/log_event_watch { "trigger" : { "schedule" : { "interval" : "5m" } }, "input" : { "search" : { "request" : { "indices" : "log-events", "body" : { "query" : { "match" : { "status" : "error" } } } } } }, "condition" : { "compare" : { "ctx.payload.hits.total" : { "gt" : 0 } } }, "actions" : { "log_hits" : { "foreach" : "ctx.payload.hits.hits", "max_iterations" : 500, "logging" : { "text" : "Found id {{ctx.payload._id}} with field {{ctx.payload._source.my_field}}" } } } }