首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用哪个规则引擎?

使用哪个规则引擎?
EN

Stack Overflow用户
提问于 2016-06-25 14:31:01
回答 1查看 265关注 0票数 1

我需要处理多个规则,并根据匹配条件选择一个值。

规则可能是

案例1

代码语言:javascript
复制
----------------------------------------
| A  | B  | C  | D  | priority | value |
----------------------------------------
| a1 | b1 |    | c1   |  1       | 250 |
----------------------------------------
|      | b2 | c2 | d2 |  3       | 200 |
----------------------------------------
| a3   | b3 | c3 | d3 |  2       | 100 |
----------------------------------------

根据上面定义的规则,我们首先寻找最大数量的匹配条件,并选择该规则的值(即值为“100”的规则)

案例2

代码语言:javascript
复制
----------------------------------------
| A  | B  | C  | D  | priority | value |
----------------------------------------
| a1 | b1 |    | c1 |  1       | 100   |
----------------------------------------
|    | b2 | c2 | d2 |  2       | 200   |
----------------------------------------

如果发现两个冲突的规则具有相同数量的匹配标准,则查找优先级,并选择具有最高优先级的规则。在这种情况下(值为"100“的规则。

案例3

代码语言:javascript
复制
----------------------------------------
| A  | B  | C  | D  | priority | value |
----------------------------------------
| a1 | b1 |    | c1 |  3       | 100   |
----------------------------------------
|    | b2 | c2 | d2 |  2       | 200   |
----------------------------------------
| a3 | b3 | c3 | d3 |  1       | 300   |
----------------------------------------
| a4 | b4 | c4 | d4 |  1       | 400   |
----------------------------------------

在这种情况下,如果找到多个具有相同匹配条件数和相同优先级的规则,则选择具有最高值的规则(即,值为400的Rule4 )。

我知道它看起来很具体,但我试图谷歌,但没有遇到任何规则引擎,可以在这种情况下使用。请帮我提供一些建议和想法。

EN

回答 1

Stack Overflow用户

发布于 2016-09-03 18:27:14

正如其他人所指出的那样,任何规则引擎都应该适用于您的情况。由于乍一看这似乎是一个非常轻量级的用例,你可以使用Rulette来做这件事(披露-我是作者)。您可以定义自己的规则,然后使用getAllRules应用编程接口获取适用的规则列表,您可以根据需要对这些规则执行最小/最大值操作。

然而,我很好奇,为什么你想要定义冲突的规则,然后对它们应用“优先级”?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38025704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档