Как активировать шаблон при частичном совпадении в Esper CEP

Я пытаюсь решить проблему нарушения маршрута. Пользователь определяет маршрут как серию последовательностей местоположений (в точном порядке), на которых необходимо увидеть какой-либо элемент. Итак, допустим, что правильный маршрут (это определяется пользователем)

A -> B -> C

Я пытаюсь написать Esper EPL, который будет срабатывать при всех нарушениях маршрута. A — это начальная точка, с которой должен начинаться шаблон (допустимое местоположение).

A -> !B -> !C

Это сработает, когда в ESPER будут найдены все 3 типа событий.

Но я хочу также срабатывать, когда есть только частичная комбинация, например

A -> !B

or

!B -> !C

or

B -> !C

потому что если маршрут пропущен на B, то я, вероятно, никогда не доберусь до C и не буду уведомлен о нарушении маршрута.

Возможно ли это вообще с шаблонами в Esper?


person rjovic    schedule 25.04.2017    source источник


Ответы (1)


Я вижу несколько вариантов.

  • Зарегистрируйте отдельный оператор с шаблоном или распознаванием соответствия для каждого
  • Соедините каждый с «или», т. е. «каждый (..) или каждый (..) или каждый (..)
  • Вставьте результат частичного совпадения в поток, чтобы другой шаблон продолжил сопоставление.
  • Я думаю, что у match-recognize есть несколько вариантов возобновления «пропустить».
person user650839    schedule 26.04.2017
comment
Спасибо вам за ваши предложения. В итоге остановился на варианте №2. Я подумал, может быть, есть какой-то «умный» способ сделать это, отсюда и вопрос. Возможно, позже я рассмотрю номер 3, потому что мне кажется, что это лучший подход в Эспере. Еще раз спасибо за ваш ответ. - person rjovic; 26.04.2017