流口水决策表——第一场比赛如何取胜?

标签 drools

drools 决策表文档 ( link ) 指出可以选择决策表中的第一个匹配行:

As each row is a rule, the same principles apply. As the rule engine processes the facts, any rules that match may fire. (Some people are confused by this. It is possible to clear the agenda when a rule fires and simulate a very simple decision table where only the first match effects an action.)

这是如何完成的?我已设置 Sequential=true,但我不确定还需要做什么。

最佳答案

Drools 提供了一种通过在决策表规则集中定义激活组来解决此问题(仅选择第一个匹配行)的方法。

只有当您想使用 drools 决策表作为查找表时,您的解决方法 maxrules=1 才可能有效。在这种情况下,由于只能触发一条规则,因此使用 drools 与使用经典数据库查找表相比没有任何优势,它只是增加了复杂性。

如果您决定使用 drools 或一般的规则引擎,您应该将您的“规则”或“决策”移至规则定义中,以从其优势中获益最多(RETE 引擎、灵活性、规则与应用程序的分离)代码等)

关于流口水决策表——第一场比赛如何取胜?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14262281/

相关文章:

java - 流口水java更新

drools - 如何使用 Drools 向后链接来列出满足目标所需的初始事实?

drools - 新的 Drools 6.x KIE A​​PI 是如何工作的?

java - Drools 列表类型字段

java - Drools 从 session 中获取相同类型的对象

java - 如何使 drools drl 文件在运行时访问更新的 jar

java - 如何修复 "NoClassDefFoundError KieServices.Factory"

log4j - Drools 业务规则管理是否受 CVE-2021-44228 影响

java - 为什么 drools 规则引擎即使在循环内给出也只执行一次?

java.lang.ClassNotFoundException : org. eclipse.aether.resolution.ArtifactResolutionException