Flink CEP中的greedy到底该如何理解

Flink CEP中的greedy到底该如何理解

Pattern.begin("start").where(new SimpleCondition() { 
 @Override 
 public boolean filter(Event value) throws Exception { 
 return value.user.startwith("a"); 
 } 
}).oneOrMore() 
.followedBy("middle").where(new SimpleCondition() { 
 @Override 
 public boolean filter(Event value) throws Exception { 
 return value.user.equals("b"); 
 } 
}); 

img

上述代码的意思是:使用Greedy的方式从开始的Event中查找user以“a”开头的事件,然后跟上一个或多个user为“b”的事件。也就是说,这段代码描述的是一种模式,即“a开头的事件跟上一个或多个b的事件”。