设置elasticsearch watcher操作条件以过滤字段中包含特定字符串的有效负载文档

bqujaahr  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(0)|浏览(149)

是否可以设置一个操作条件,根据有效负载文档中的某个字段是否符合某些条件来过滤有效负载?在我的例子中,我试图返回与给定用户匹配的文档。
我的尝试如下:

"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() 很好用。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题