【问题标题】:Using Drools with large (1 million or more) rules使用具有大型(100 万或更多)规则的 Drools
【发布时间】:2018-02-15 16:56:33
【问题描述】:

我们正在评估 Drools 的医疗相关软件应用程序。我们最初的规则集约为 25k,但随着时间的推移,该规则集将增长到超过一百万。这是典型规则的结构方式:

when item contains the codes "1234" AND "5678" 
  AND does not include "ABC123" 
then [show some message]

被评估的项目将包含一个代码数组,因为它是事实。我们正在尝试做的是创建一个推荐引擎来指导用户对项目进行更改以实现合规性。我担心的是,如果 Drools 不评估所有“何时”语句以找到匹配的规则,我们就无法选择性地过滤哪些规则应该触发。如果我们有数百万条规则(我们的一些竞争对手评估的规则超过 300 万条),这是 Drools 可以处理的,还是我们应该寻找其他地方?

事务负载并不重,这意味着一个事务可能只有几十到几百个需要通过该过程的项目。这里的大多数帖子都提到了相反的问题,评估了数百万条记录的数百条规则。

非常感谢任何指导!

【问题讨论】:

    标签: drools rule-engine


    【解决方案1】:

    这是旧的,但我仍然想回答。考虑到 Drools 有一个 RETE 实现,它旨在优化和排除不相关的规则。但是,要使其正常工作,您的数据模型必须兼容并在条件下使用更简单的属性。

    即而不是<array> [NOT] contains <x>,您应该先进行分类并定义诸如设置<object>.<property>之类的事实,然后对其执行规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多