使用具有大(100万或更多)规则的Drools

时间:2018-02-15 16:56:33

标签: drools rule-engine

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

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

正在评估的项目将包含一系列代码作为其事实。我们要做的是创建一个推荐引擎,引导用户更改项目以确保合规性。我担心的是,如果没有Drools评估所有"当"用于查找匹配规则的语句。如果我们有数以百万计的规则(我们的一些竞争对手已经评估了超过300万)这是Drools可以处理的东西,还是我们应该寻找其他地方?

交易负载并不重要,这意味着交易可能只需要几十到几百个需要完成整个过程的项目。这里的大多数帖子都提到了相反的问题,为数百万条记录评估了数百条规则。

非常感谢任何指导!

1 个答案:

答案 0 :(得分:0)

这是旧的,但我还是想回答。考虑到Drools具有RETE实施,其目的是优化和排除不相关的规则。但是,要使此方法起作用,您的数据模型必须兼容并且在条件下使用更简单的属性。

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