如何在 Flink CEP 中使用 "every" 模式运算符

How to use "every" pattern operator in Flink CEP

在 Esper CEP 引擎事件模式中,有 Every 运算符,表示当 every 关键字限定的子表达式计算结果为真或假时,模式子表达式应该重新启动。

According to this document,我们可以以不同的方式使用 every 运算符,例如:

    A -> B
    every ( A -> B )
    every A -> B
    A -> every B
    every A -> every B

我想知道在Flink CEP中有哪些模式是可能的?我想在 Flink 中使用 every A -> B 但不知道如何使用

Flink中这个默认的CEP模式代表了以上模式中的哪一个? (使用 Flink v1.1.4)

Pattern<Event, ?> pattern = Pattern.begin("start").where(evt -> evt.getId() == 42)
    .followedBy("end").where(evt -> evt.getName().equals("end"));

提前致谢。

Flink 提供了一些 documentation 关于如何使用 every 的内容,如果您指定子类型,那么每次迭代都会调用它

start.subtype(SubEvent.class).where(new SimpleCondition<SubEvent>() {
    @Override
    public boolean filter(SubEvent value) {
        return ... // some condition
    }
});

但在我看来,这不是您要找的。但是,你可以看看一个轻量级的 Siddhi- Flink CEP library 通过使用它你将能够在 Flink

中使用 siddhi 查询语言