几个具有相同显着性的规则的结果是什么?它们的执行顺序仅仅是列出的顺序,还是行为未定义-也就是说,是否按任意顺序检查它们?我似乎找不到有关如何内部处理的文档。
最佳答案
简短的答案是,您不应该依赖于触发相同显着性的规则顺序-如果它们“冲突”(即,两者都有资格触发)。没有显着性的规则只是显着性为零,BTW。
当然,它是确定性的-只是算法会在版本之间进行更改(尽管不太可能)。
这属于“解决冲突”的一般领域,对此已有很多论述。我找不到有关Drools策略的最新文章-但我相信其中大部分是“新近度”(例如,最近修改/插入的事实“获胜”),或者引用最新事实的规则将获胜。如果毕竟无法确定-通常是规则加载的顺序(通常与它们在文件中的写入方式一致)。如果您必须下订单-使用显着性或使用规则流或类似规则,最好不要再猜测它会如何工作。