关于drools规则的问题。

gerbility 2007-04-15
varclu : cluster(clusterid==v_cluster_id, transitionid==v_transition, stateid==v_state, ruleid==v_rule_id, v_evtid : evtid, v_evttype : evttype, v_srcaddress : srcaddress, v_destaddress : destaddress, v_timestamp : timestamp, v_alertid : alertid)
上面是我写的规则。编译时提示错误为:There cannot be more than 3 indexes
如果我去掉一个等于的条件,如“ruleid==v_rule_id”就可以执行。是不是drools只能支持三个以内的变量进行比较呢?我初学drools,希望各位多多帮忙。谢谢
sonic_yj 2007-04-15
应该是,可以通过ada-group分解解决

btw:这个model设计个人感觉有点问题
gerbility 2007-04-16
什么是ada-group啊?drools里没这个关键字啊?agenda-group?能说说你觉得这个模型哪有问题,该怎么改吗?这个模型以前是用CLIPS的,我现在把他改成drools的,基本结构都是照着以前的,将语法改成drools而已。由于刚看drools,有很多方面还不太清楚,请多多包涵。谢谢
dada 2007-04-17
可以用eval替代
eval(varclu .getClusterid == v_cluster_id)
gerbility 2007-04-18
谢谢,可以了。可是,如果是在not关键字里面的该怎么办呢?里面没法定义变量啊?比如not(cluster_evttype(clusterid==v_cluster_id, stateid==v_state, evttype==v_evttype,ruleid==v_rule_id)),作用是判断如果fact里面没有添加这个事实,将这个事实加入进去。
gerbility 2007-04-20
谢谢了,已经解决了,这个错误只出现在3.1 - latest milesone版本,作者说已经打上补丁了。谢谢大家。