[发明专利]一种实现基于规则引擎的规则匹配方法和装置有效
申请号: | 201210507303.3 | 申请日: | 2012-11-30 |
公开(公告)号: | CN102968309A | 公开(公告)日: | 2013-03-13 |
发明(设计)人: | 林强 | 申请(专利权)人: | 亚信联创科技(中国)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100086 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 基于 规则 引擎 匹配 方法 装置 | ||
技术领域
本发明涉及数据匹配技术领域,具体涉及一种实现基于规则引擎的规则匹配方法和装置。
背景技术
规则引擎是一种嵌入到应用程序中的组件,大多数规则引擎都支持简单脚本语言的规则实现,支持通用开发语言的嵌入开发。规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策,应用程序通过向规则引擎提交数据或者对象来触发规则引擎,由规则引擎来调用相应的规则,进而触发相应的操作。通常一个规则包含一组规则条件和在此规则条件下执行的操作,当且仅当该规则中的所有规则条件都匹配成功时,规则引擎将会触发此规则下的所有操作执行。
因此,当规则数量较多时,使用现有技术进行规则匹配,对于每个规则的所有规则条件都需要匹配成功,才能匹配到所需规则。
目前,在规则数量较多的情况下,通过匹配每个规则的所有规则条件来查找出需要匹配的规则的方法,使得在查找需要匹配的规则的过程中需要判断是否匹配的规则较多,一定程度上降低了规则引擎的性能,使得规则匹配的效率较低。
发明内容
为了解决规则匹配的效率低的问题,本发明提供了一种实现基于规则引擎的规则匹配方法和装置。
本发明提供了一种实现基于规则引擎的规则匹配方法,所述方法包括,
接收需要匹配的事件,所述事件包括至少一个属性值;
判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配;
如果是,则确定匹配的索引项所对应的目标待匹配规则;
对所述目标待匹配规则的规则条件与所述事件中的属性值进行匹配。
优选地,所述判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配之前,还包括:
按照预设排序规则对任一所述规则预设的索引项集合进行排序;
根据排序后的各个索引项的顺序,设置索引项集合中各个索引项的优先级。
优选地,所述按照预设排序规则对任一所述规则预设的索引项集合进行排序,具体为;
将任一相等关系的索引项设置为第一优先级;
将所述索引项集合中除了设置为第一优先级的索引项的其他索引项,按照预设顺序规则进行排序;
相应的,所述根据排序后的各个索引项的顺序,设置索引项集合中各个索引项的优先级,具体为:
根据排序后的各个索引项的顺序,设置索引项集合中除了设置为第一优先级的索引项的其他索引项的优先级。
优选地,所述判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配,具体为:
假设所述待匹配规则的数量为N,则第n个待匹配规则的索引项数量为Mn,所述n为不大于N的自然数;
如果第n个规则的索引项数量Mn等于1,则判断所述事件中是否存在一个属性值与所述第n个规则的一个索引项匹配。
优选地,所述判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配,具体为:
假设所述待匹配规则数量为N,则第n个待匹配规则的索引项数量为Mn,所述n为不大于N的自然数;
如果第n个规则的索引项数量Mn大于1,则判断所述事件中是否存在一个属性值与所述第n个规则的第一优先级索引项匹配;
如果是,则根据第一优先级索引项与第二优先级索引项的对应关系,确定所述第n个规则的第二优先级索引项,并判断所述事件中是否存在一个属性值与所述第二优先级索引项匹配,依此类推,直到判断是否存在所述事件中的一个属性值与所述第n个规则的第Mn优先级索引项匹配。
本发明还提供一种实现基于规则引擎的规则匹配装置,所述装置包括:
接收模块,用于接收需要匹配的事件,所述事件包括至少一个属性值;
判断模块,用于判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配;
第一确定模块,用于在所述判断模块的结果为是时,确定匹配的索引项所对应的目标待匹配规则;
匹配模块,用于对所述目标待匹配规则的规则条件与所述事件中的属性值进行匹配。
优选地,所述装置还包括:
排序模块,用于按照预设排序规则对任一所述规则预设的索引项集合进行排序;
第一设置模块,用于根据排序后的各个索引项的顺序,设置索引项集合中各个索引项的优先级。
优选地,所述排序模块包括:
第二设置模块,用于将任一相等关系的索引项设置为第一优先级;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于亚信联创科技(中国)有限公司,未经亚信联创科技(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210507303.3/2.html,转载请声明来源钻瓜专利网。