我正在尝试直接对事件类型使用时间间隔代数方法,根据文档,这应该是可能的。我首先尝试使用create schema
语法定义一些事件类型,如下所示:
create schema BaseEvent as (time long, name String) starttimestamp time
create schema ExtendedEvent as (moreInfo String) inherits BaseEvent
如果我写这样的查询
select *
from BaseEvent.std:lastevent() as a, ExtendedEvent.std:lastevent() as b
where a.after(b)
它实际上编译没有错误。但是如果我尝试使用模式而不是连接,就像这样
select *
from pattern [ every (a = BaseEvent and b = ExtendedEvent) ]
where a.after(b)
它给了我一个错误:
Date-time enumeration method 'after' requires either a Calendar,
Date or long value as input or events of an event type that
declares a timestamp property
当我尝试使用派生自基本事件类型的 POJO 时出现相同的错误,该基本事件类型具有文档中描述的时间戳属性。虽然它在我实际使用基类型时有效,但在这种情况下,Esper 不使用继承的时间属性似乎很奇怪,而在其他情况下它确实使用了有关继承它的信息。
难道我做错了什么?这是一个错误吗?或者也许它只是按预期工作......