首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Esper / NEsper EPL语句

Esper / NEsper EPL语句
EN

Stack Overflow用户
提问于 2020-10-28 18:43:39
回答 1查看 65关注 0票数 0

我正在尝试为以下情况定义NEsper事件语句。我有3个事件--例如苹果、香蕉和橙子。它们都有属性- (bool) eatable,(datetime) timestamp。我想要捕捉模式,如果有多个事件可吃-在几乎相同的时间戳上是真的。如果它们中只有一个是可吃的(只有一个是真的),在几乎相同的时间戳(时间差,例如1秒),它是可以的。但是,如果它们在几乎相同的时间戳(时间差,例如1秒)上有2个或更多可吃的true,则应该捕获模式。如何定义这种情况下的EPL语句?谢谢你的建议。

向Narsu致以最良好的问候

EN

回答 1

Stack Overflow用户

发布于 2020-10-29 03:35:45

这里使用长时间戳,因为Java没有"datetime“类型(可能有.NET类型)。

只需将where子句更改为更详细的标准即可。

可以使用"after“和”Math#abs“来代替减号和之前的边界,但这里似乎更容易一些简单的算术运算。

代码语言:javascript
复制
create schema Apple(eatable boolean, ts long); 
create schema Banana(eatable boolean, ts long); 
create schema Orange(eatable boolean, ts long); 

select * from Apple#lastevent as a, Banana#lastevent as b, Orange#lastevent as o
where {a.eatable, b.eatable, o.eatable}.countOf(v=>v) = 1 // exactly one is eatable
and (Math.abs(a.ts - b.ts)+Math.abs(b.ts - o.ts)) < 1000000
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64571176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档