Простая последовательность событий

Предположим, что генерируются события типа A, B, C или D. Я хочу обнаруживать, когда за событием типа A следует событие типа B. Другими словами, я хочу обнаруживать последовательности, для которых Esper's EPL предоставляет оператор ->.

Однако то, что я описал выше, неоднозначно, я хочу следующее: всякий раз, когда обнаруживается B, я хочу, чтобы он сопоставлялся с самым последним A.

Я играл с синтаксисом EPL, но лучшее, что я смог придумать, это следующее:

select * from pattern [(every a=A) -> b=B]

Это, однако, сопоставляет каждый B с самым старым A, который произошел после последнего совпадения. Странный...

Помощь очень ценится! :П


person lkbaerenfaenger    schedule 02.08.2016    source источник


Ответы (1)


Я часто использую соединения для простого сопоставления. Другой вариант — распознавание совпадений. Присоединение такое.

select * from B unidirectional, A.std:lastevent()
person goodie    schedule 02.08.2016