2016-08-02 10 views
0

Angenommen, Ereignisse von Typ A, B, C oder D werden ausgegeben. Ich möchte erkennen, wann auf ein Ereignis vom Typ A ein Ereignis vom Typ B folgt. Mit anderen Worten, ich möchte eine Sequenz erkennen, für die Esper's EPL den Operator -> bereitstellt.Einfache Abfolge von Ereignissen

jedoch, was ich oben beschrieben, ist nicht eindeutig, was ich will, ist der folgende: Wenn ein B erkannt wird, ich will es mit dem neuesten A. angepasst werden

ich um mit EPL Syntax gespielt haben , aber das beste, was ich tun konnte, war, dass:

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

Dies ist jedoch jeden B übereinstimmt mit dem ältesten A, die nach dem letzten Spiel aufgetreten. Weird ...

Hilfe wird sehr geschätzt! : P

Antwort

1

Ich verwende Joins viel für das einfache Matching. Die andere Option ist Übereinstimmungs-Erkennung. Die Verbindung so.

select * from B unidirectional, A.std:lastevent()