一种实现基于规则引擎的规则匹配方法和装置制造方法及图纸

技术编号:8413018 阅读:329 留言:0更新日期:2013-03-14 02:06
本发明专利技术实施例公开了一种实现基于规则引擎的规则匹配方法和装置,该方法具体为,接收需要匹配的事件,所述事件包括至少一个属性值;判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配;如果是,则确定匹配的索引项所对应的目标待匹配规则;对所述目标待匹配规则的规则条件与所述事件中的属性值进行匹配。本发明专利技术利用索引来进行需要匹配的规则的筛选,使得在需要规则匹配时,减少了需要匹配的规则的数量,提高了规则引擎的性能以及规则匹配的效率。

【技术实现步骤摘要】

本专利技术涉及数据匹配
,具体涉及一种实现基于规则引擎的规则匹配方法和装置
技术介绍
规则引擎是一种嵌入到应用程序中的组件,大多数规则引擎都支持简单脚本语言的规则实现,支持通用开发语言的嵌入开发。规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策,应用程序通过向规则引擎提交数据或者对象来触发规则引擎,由规则引擎来调用相应的规则,进 而触发相应的操作。通常一个规则包含一组规则条件和在此规则条件下执行的操作,当且仅当该规则中的所有规则条件都匹配成功时,规则引擎将会触发此规则下的所有操作执行。因此,当规则数量较多时,使用现有技术进行规则匹配,对于每个规则的所有规则条件都需要匹配成功,才能匹配到所需规则。目前,在规则数量较多的情况下,通过匹配每个规则的所有规则条件来查找出需要匹配的规则的方法,使得在查找需要匹配的规则的过程中需要判断是否匹配的规则较多,一定程度上降低了规则引擎的性能,使得规则匹配的效率较低。
技术实现思路
为了解决规则匹配的效率低的问题,本专利技术提供了一种实现基于规则引擎的规则匹配方法和装置。本专利技术提供了一种实现基于规则引擎的规则匹配方法,所述方法包括,接收需要匹配的事件,所述事件包括至少一个属性值;判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配;如果是,则确定匹配的索引项所对应的目标待匹配规则;对所述目标待匹配规则的规则条件与所述事件中的属性值进行匹配。优选地,所述判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配之前,还包括按照预设排序规则对任一所述规则预设的索引项集合进行排序;根据排序后的各个索引项的顺序,设置索引项集合中各个索引项的优先级。优选地,所述按照预设排序规则对任一所述规则预设的索引项集合进行排序,具体为;将任一相等关系的索引项设置为第一优先级;将所述索引项集合中除了设置为第一优先级的索引项的其他索引项,按照预设顺序规则进行排序;相应的,所述根据排序后的各个索引项的顺序,设置索引项集合中各个索引项的优先级,具体为根据排序后的各个索引项的顺序,设置索引项集合中除了设置为第一优先级的索引项的其他索引项的优先级。优选地,所述判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配,具体为假设所述待匹配 规则的数量为N,则第η个待匹配规则的索引项数量为Mn,所述η为不大于N的自然数;如果第η个规则的索引项数量Mn等于1,则判断所述事件中是否存在一个属性值与所述第η个规则的一个索引项匹配。优选地,所述判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配,具体为假设所述待匹配规则数量为N,则第η个待匹配规则的索引项数量为Mn,所述η为不大于N的自然数;如果第η个规则的索引项数量Mn大于1,则判断所述事件中是否存在一个属性值与所述第η个规则的第一优先级索引项匹配;如果是,则根据第一优先级索引项与第二优先级索引项的对应关系,确定所述第η个规则的第二优先级索引项,并判断所述事件中是否存在一个属性值与所述第二优先级索引项匹配,依此类推,直到判断是否存在所述事件中的一个属性值与所述第η个规则的第Mn优先级索引项匹配。本专利技术还提供一种实现基于规则引擎的规则匹配装置,所述装置包括接收模块,用于接收需要匹配的事件,所述事件包括至少一个属性值;判断模块,用于判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配;第一确定模块,用于在所述判断模块的结果为是时,确定匹配的索引项所对应的目标待匹配规则;匹配模块,用于对所述目标待匹配规则的规则条件与所述事件中的属性值进行匹配。 优选地,所述装置还包括排序模块,用于按照预设排序规则对任一所述规则预设的索引项集合进行排序;第一设置模块,用于根据排序后的各个索引项的顺序,设置索引项集合中各个索引项的优先级。优选地,所述排序模块包括第二设置模块,用于将任一相等关系的索引项设置为第一优先级;排序子模块,用于将所述索引项集合中除了设置为第一优先级的索引项的其他索引项,按照预设顺序规则进行排序;相应的,所述第一设置模块,具体用于根据所述排序子模块中排序后的各个索引项的顺序,设置索引项集合中除了设置为第一优先级的索引项的其他索引项的优先级。优选地,所述判断模块包括获取子模块,用于获取所述待匹配规则的数量为N,以及第η个待匹配规则的索引项数量为Mn,所述η为不大于N的自然数;第一判断子模块,用于在第η个规则的索引项数量Mn等于I的情况下,判断所述事件中是否存在一个属性值与所述第η个规则的一个索引项匹配。优选地,所述判断模块包括获取子模块,用于获取所述待匹配规则的数量为N,以及第η个待匹配规则的索引项数量为Mn,所述η为不大于N的自然数;第二判断模块,用于在第η个规则的索引项数量Mn大于I的情况下,判断所述事件中是否存在一个属性值与所述第η个规则的第一优先级索引项匹配;第三判断子模块,用于所述第二判断子模块的结果为是时,根据第一优先级索引 项与第二优先级索引项的对应关系,确定所述第η个规则的第二优先级索引项,并判断所述事件中是否存在一个属性值与所述第二优先级索引项匹配,依此类推,直到判断是否存在所述事件中的一个属性值与所述第η个规则的第Mn优先级索引项匹配。与现有技术相比,本专利技术首先接收需要匹配的事件,所述事件包括至少一个属性值;判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配;如果是,则确定匹配的索引项所对应的目标待匹配规则;对所述目标待匹配规则的规则条件与所述事件中的属性值进行匹配。本专利技术利用索引来进行需要匹配的规则的筛选,使得在需要规则匹配时,减少了需要匹配的规则的数量,提高了规则引擎的性能以及规则匹配的效率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本专利技术实施例一的实现基于规则引擎的规则匹配方法的流程图;图2为本专利技术实施例二的实现基于规则引擎的规则匹配方法的流程图;图3为本专利技术实施例三的实现基于规则引擎的规则匹配装置的结构图;图4为本专利技术实施例三的排序模块302的装置结构图;图5为本专利技术实施例三的在规则的索引项数量等于I时的判断模块304结构图;图6为本专利技术实施例三的在规则的索引项数量大于I时的判断模块304结构图。具体实施例方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。实施例一、参考图1,图I为本专利技术提供的一种实现基于规则引擎的规则匹配方法实施例一的流程图,本实施例具体可以包括步骤101、接收需要匹配的事件,所述事件包括至少一个属性值。本领域中,规则引擎通过接收事件被触发,进而根据接收的事件来调用相应的规则与事件进行匹配,如果匹配成功,则触发此匹配成功的规则所能够触发的所有操作。本实施例主要解决了如何根据接收到的事件,在存储所有规则的规则列表本文档来自技高网...

【技术保护点】
一种实现基于规则引擎的规则匹配方法,其特征在于,所述方法包括,接收需要匹配的事件,所述事件包括至少一个属性值;判断是否存在任一待匹配规则预设的索引项与所述事件中的属性值匹配;如果是,则确定匹配的索引项所对应的目标待匹配规则;对所述目标待匹配规则的规则条件与所述事件中的属性值进行匹配。

【技术特征摘要】

【专利技术属性】
技术研发人员:林强
申请(专利权)人:亚信联创科技中国有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1