Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Drools是否适用于我的场景?如果不是,还有什么?_Java_Drools_Rule Engine - Fatal编程技术网

Java Drools是否适用于我的场景?如果不是,还有什么?

Java Drools是否适用于我的场景?如果不是,还有什么?,java,drools,rule-engine,Java,Drools,Rule Engine,情景- 1.最终用户应该能够从前端创建规则。该规则会有条件(我无法在Drools中找到根据用户创建的规则动态修改.drl文件的方法) 规则应该能够在层次结构中定义,并且同一规则可以属于多个层次结构 最终用户应该能够触发规则的执行。这里需要注意的是,事实可能在KnowledgeSession中不可用,规则根据底层数据库转换为相关查询,然后在底层数据库上触发 因此,其思想是在有限的实体知识下创建规则->当触发规则时,它与底层数据库一起创建与底层数据库中存在的实体相关的查询 我能用Drools(另一个

情景- 1.最终用户应该能够从前端创建规则。该规则会有条件(我无法在Drools中找到根据用户创建的规则动态修改.drl文件的方法)

  • 规则应该能够在层次结构中定义,并且同一规则可以属于多个层次结构

  • 最终用户应该能够触发规则的执行。这里需要注意的是,事实可能在KnowledgeSession中不可用,规则根据底层数据库转换为相关查询,然后在底层数据库上触发

  • 因此,其思想是在有限的实体知识下创建规则->当触发规则时,它与底层数据库一起创建与底层数据库中存在的实体相关的查询


    我能用Drools(另一个规则引擎)做些什么,而不是构建一个自定义的实现吗?

    看起来你要做的并不容易。但是流口水应该是一种更容易的方法。我假设“层次”是指规则流,而不是规则流组,但我认为答案适用于其他场景

    我认为您可能需要检查的工具是Drools Guvnor,因为它在DB中存储规则,并提供一个UI来更改规则


    我认为棘手的一点是在不同的规则流中应用这些规则,但我相信drools提供了一种方法。或者,最糟糕的情况是,您需要克隆规则并将它们放在不同的规则流组中。

    我会查看Guvnor,谢谢。它是否提供api以便我可以使用自己的UI?我可以检查一下,但是我想如果你马上有答案的话。同时,对于等级制度,我的意思是说,规则1是美国的所有人,规则2是英国的所有人。规则3是指所有人都有一辆红色汽车,那么当规则3属于规则1的层次结构时,我们所有人都有一辆红色汽车,当规则3属于规则2的层次结构时,英国所有人都有一辆红色汽车。因此,尽管规则是相同的,但取决于它所属的层次结构,我得到了不同的结果。嗨,Vikas,你肯定可以做到这一点,你有两种方法,使用规则组或规则组流。我建议您阅读一点drools的文档来理解这两个概念。我不知道Drools Guvnor是否有一个api来管理规则,但我认为它一定有一个api