Слюни, огромное количество фактов - PullRequest
0 голосов
/ 27 августа 2018

Мне бы хотелось получить ваш совет по поводу следующих проблем, которые я пытаюсь решить с помощью Drools. Мое приложение должно быть в состоянии применить набор настраиваемых правил для генерации совпадений между клиентами и подозреваемыми, чтобы проверить, может ли совпадение с некоторыми из них, затем оператор должен выбрать или отклонить предложения совпадения.

Количество клиентов начинается с тысяч, а список подозреваемых может составлять несколько миллионов.

В моем приложении обычно 2 варианта использования:

  1. На этапе инициализации клиенты уже зарегистрированы, и мы хотели бы применить правила к каждому подозреваемому, которого мы пытаемся загрузить.
  2. Когда новый клиент зарегистрирован или важные данные старого клиента обновлены, мы хотели бы повторно применить эти правила со всеми подозреваемыми, уже загруженными.

Правила должны быть достаточно гибкими, чтобы их можно было фильтровать в соответствии с различными атрибутами и использовать общие алгоритмы, такие как Soundex / Levinstein, и даже некоторые их собственные версии для вычисления результатов.

Я бы хотел избежать предварительного выбора, прежде чем сообщать факты движку правил, чтобы система была максимально гибкой ... но, конечно, готова выслушать такое решение.

Я мог бы подумать о каких-то мета-фактах, чтобы уменьшить количество фактов и применять правила, но мне кажется, что это сложно с гибкой реализацией правил.

Я не очень знаком с решениями, основанными на MapReduce или Spark, и хотел бы знать, актуальны ли эти решения в сочетании с Drools для моих проблем и как их интегрировать с Drools.

Спасибо за ваши советы, ориентацию и понимание.

...