我的事件流通常包含一个open事件,后跟一个close事件。我们称之为O
和C
。但是,有两个细节:
O
在O
到达之前可能会跟着一个或多个C
C
可能完全丢失(见下文)假设C
应在某个T
之后不迟于时间O
内到达。否则,C
被视为缺失。当C
最终到达时,从O
T
C
之前到达的所有未结O
被视为孤儿并且不感兴趣。
我希望esper触发每对C
后跟O
,其中T
距离C
O
不再O
。
(O1,C)
。
例如,
datediff(O1, C) < T
(O2,C)
,应选择datediff(O2, C) < T
如果上面的内容为false,则应选择{{1}} {{1}}
等
在解决这个问题时发脾气了。看起来我的思想与esper不兼容。你的帮助非常有用。
答案 0 :(得分:0)
这可能类似于下面的内容,我们的想法是,当事件到达时,我们想要查看事件的最后1分钟并找到与时间差异相匹配的第一个事件。如果需要,请使用第二个语句过滤掉那些没有匹配的语句。
插入Pair 选择,(选择窗口()。firstOf(v =&gt; v.time - e2.time&lt; T)从Event.win:time(1分钟)作为e1)匹配 来自Event as e2
从匹配不为空的配对中选择*