是否可以设置一个操作条件,根据有效负载文档中的某个字段是否符合某些条件来过滤有效负载?在我的例子中,我试图返回与给定用户匹配的文档。
我的尝试如下:
"actions": {
"email_admin": {
"throttle_period_in_millis": 900000,
"condition": {
"script": {
"source": "return ctx.payload.hits.hits.stream().filter(x -> x._source.log.user.equals('user123')).count() > 0",
"lang": "painless"
}
},
"email": {
.
.
.
}
然而,这只是打破了观察者和我的行动没有执行。我对java流有正确的想法吗?
我想我可能需要设置一个条件来检查是否存在与该用户匹配的文档,然后设置一个动作转换来将负载转换为所需的输出。
如果我能进一步澄清我的问题,请告诉我。提前谢谢。
尝试 anyMatch()
也:
return ctx.payload.hits.hits.stream().anyMatch(x -> x._source.log.user.equals("user123"))
更新:我忘了在此之前我已经转换了有效负载,并且忽略了用户Map。 anyMatch()
很好用。
暂无答案!
目前还没有任何答案,快来回答吧!