我正在尝试编写一个EPStatement,它将匹配没有指定字段的任何事件,该字段“类似”于滑动时间窗口中的另一个事件。例如,仅匹配“值”至少与滑动窗口中的任何其他事件的距离为3的事件,
At t=t_0, E0={value=0} // Match
At t=t_1, E1={value=9} // Match
At t=t_2, E2={value=1} // Don't match since value is within 3 of E0.value我正在寻找一个语句,在这里我可以使用任何将两个值作为“相似性”度量进行比较的表达式。我看过使用模式或匹配识别,但它们似乎不支持这种类型的动态比较,因为以前的事件数量不多。
发布于 2018-11-07 19:13:16
select * from SomeEvent#keepall as e
having not window(*).anyOf(p => Math.abs(p.value - e.value) <= 3 and p.id != e.id)window(*)保存所有事件。anyOf通过窗口找到任何匹配的内容。p.id=e.id排除当前事件。字段id是事件的唯一id,您可以或不使用它作为事件的事件属性。
https://stackoverflow.com/questions/53193118
复制相似问题