2 つのイベント タイプ (A と B) があります。同じ id: を持つAイベントの後に来るすべてのBイベントを検出するパターンを書きたいと思います。ただし、個別の ID にする必要があります。言い換えれば、パターンは、上記の式が true になるまで、最初のイベント以降の同じ ID を持つすべての Aイベントを無視する必要があります。つまり、同じ ID を持つBイベントが来ることを意味します。every A -> B (A.id = B.id)
たとえば、これがイベント ストリームであるとします。
1. A (id: 1); 2. A(id: 2); 3. A (id: 3); 4. A(id: 1); 5. A (id: 2); 6. B (id: 1); 7. B (id: 2); 8. A (id: 1); 9. B(id: 3); 10. A (id: 1); 11. B (id: 1)
イベント No1 と同じ ID を持つため、パターンはイベント No4 を無視する必要があります。イベント No6 が来ると、パターンが一致するはず1. A (id: 1) -> 6. B (id: 1)です。次に、パターンはid=1の新しいAイベントを許可する必要があります。したがって、イベント No8 は無視できませんが、イベント No10 は無視する必要があります。イベント No11 が来ると、再びパターンが一致するはず8. A(id: 1) -> 11. B(id: 1)です。
また、イベント No2 はイベント No7 と一致し、イベント No3 はイベント No9 と一致する必要があります。
を使用しようとしましたが、最初のイベント以降、同じ ID を持つすべての AEVERY-DISTINCT(A.id) A -> B (A.id=B.id)イベントが無視されます。それから試してみましたが、同じIDのBイベントが来るまで、IDに関係なくすべてのAイベントを無視するため、うまくいきませんでした。EVERY (A -> B (A.id = B.id))