CN108460038A - 规则匹配方法及其设备 - Google Patents

规则匹配方法及其设备 Download PDF

Info

Publication number
CN108460038A
CN108460038A CN201710089132.XA CN201710089132A CN108460038A CN 108460038 A CN108460038 A CN 108460038A CN 201710089132 A CN201710089132 A CN 201710089132A CN 108460038 A CN108460038 A CN 108460038A
Authority
CN
China
Prior art keywords
rule
regular collection
field
rule condition
condition unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710089132.XA
Other languages
English (en)
Inventor
彭志成
冯粮城
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710089132.XA priority Critical patent/CN108460038A/zh
Publication of CN108460038A publication Critical patent/CN108460038A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data

Abstract

公开了一种规则匹配方法及其设备,所述方法包括通过获取输入表达式的各待匹配规则条件单元中携带的各字段,确定与所述各字段对应的规则集合,其中,所述规则集合是规则条件单元组成的集合,规则集合中的各规则条件单元中具有相同的字段按照规则条件单元中的字段形成的集合;通过将各待匹配的规则条件单元分别与其携带的字段对应的规则集合中的各条件集合进行匹配,并将匹配后的规则条件单元的集合作为最终规则集合,其中,条件集合是根据规则集合中的规则条件单元的条件关系而被划分的子集合。所述方法在规则匹配过程中利用规则条件单元中的条件关系进行匹配,从而减少运算量。

Description

规则匹配方法及其设备
技术领域
本申请涉及本发明属于计算机技术领域,具体涉及一种规则匹配方法及其设备。
背景技术
当前,在生产等领域通过规则的形式来表示生产或业务逻辑。通过利用计算机技术,使用规则引擎来逐轮地对事实和条件进行模式匹配,以找出满足条件的规则,并在解决冲突之后选择满足条件的规则中的一条规则来执行。当前,使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本。
当利用规则引擎对某一表达式进行匹配时,通常会通过循环地对每个规则中的每个规则条件单元进行判断来确定与该表达式匹配的规则。例如,规则引擎中包括规则1:(age>10)&&(salary<10000)&&(amounts>=3000)、规则2:(age>20)&&(salary<20000)&&(amounts>4000)和规则3:(age>30)&&(salary>30000)&&(amounts<1500),当利用规则引擎对表达式:(age=35)&&(salary=8000)&&(amounts=3500)进行匹配时,先将age=35分别与这三个规则中的age规则条件单元进行匹配,可以看出,age=35与这三个规则条件单元都匹配,随后,将salary=8000分别与这三个规则中的salary规则条件单元进行匹配,可以看出,salary=8000与规则1和规则2匹配,随后,将amounts=3500分别与这三个规则中的amounts进行匹配,可以看出,amounts=3500仅与规则1中的amounts规则条件单元匹配。由此可得知,总计算量是总规则数*规则条件单元数量。
综上所述,现有的规则匹配方法的计算量巨大,如何能在最短的时间内快速的完成规则匹配的任务,是规则引擎系统一直寻求的突破点。
发明内容
本发明的主要目的在于提供一种,旨在解决以上提到的规则匹配的速率问题。
本申请实施例提供一种规则匹配方法,所述方法包括通过获取输入表达式的各待匹配规则条件单元中携带的各字段,确定与所述各字段对应的规则集合,其中,所述规则集合是规则条件单元组成的集合,规则集合中的各规则条件单元中具有相同的字段按照规则条件单元中的字段形成的集合;通过将各待匹配的规则条件单元分别与其携带的字段对应的规则集合中的各条件集合进行匹配,并将匹配后的规则条件单元的集合作为最终规则集合,其中,条件集合是根据规则集合中的规则条件单元的条件关系而被划分的子集合。
本申请另一实施例提供一种规则匹配设备,所述设备包括:确定模块,通过获取输入表达式的各待匹配规则条件单元中携带的各字段,确定与所述各字段对应的规则集合,其中,所述规则集合是规则条件单元组成的集合,规则集合中的各规则条件单元中具有相同的字段按照规则条件单元中的字段形成的集合;获得模块,通过将各待匹配的规则条件单元分别与其携带的字段对应的规则集合中的各条件集合进行匹配,并将匹配后的规则条件单元的集合作为最终规则集合,其中,条件集合是根据规则集合中的规则条件单元的条件关系而被划分的子集合。
本申请实施例采用的上述至少一个技术方案通过按照字段分为不同规则集合后进行匹配,避免了对输入表达式中的每个规则条件单元都要进行匹配,大大节省了运算量,此外,通过分析各个规则条件单元的条件关系将各个规则条件单元所在的规则集合划分为不同的条件集合,这样本发明可利用各个规则集合的条件关系来进行规则匹配,使得规则匹配更智能。此外,在各个条件集合中进行匹配时,可通过将规则条件单元中的字段值直接定位到各个条件集合中最接近该值的位置,随后直接提取将符合条件的规则条件单元,从而大大减小了规则匹配的运算量。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出根据本发明的示例性实施例的规则匹配方法的流程图;
图2示出利用本发明的规则匹配方法对规则进行处理的示图;
图3示出根据本发明的示例性实施例的规则匹配设备的框图;
图4示出根据本发明的实施例的电子设备的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了描述清楚,首先对所涉及的术语进行解释。
规则表达式:通常包括若干个规则条件单元及连接所述规则条件单元的运算符。例如:规则表达式为:(age>10)&&(salary<10000)&&(amounts>=3000),其中,age>10、salary<10000和amounts>=3000均为规则条件单元,而第一规则条件单元与第二规则条件单元之间的&&以及第二规则条件单元与第三规则条件之间的&&均为运算符。所述运算符同样包括多个种类,例如:“&&”表示和运算,“||”表示或运算,其它未涉及的运算符,本领域的普通技术人员可根据本发明的实施方式进行无须创造性劳动的替换,在此不再做详细赘述。
比较型操作符:主要包括大于>,小于<,大于等于>=,小于等于<=,等于==这五种比较运算。
比较型规则:规则里属性的判断主要是比较型操作符,值一般为整型。通过观察,规则引擎的绝大多数表达式都属于比较型规则,值也都能归一化为整型。
字段(Field):用来描述事物属性(也可称作维度),比如年龄,收入,性别等。
小于部分:指规则条件单元包涵<,<=,==这三种比较操作的运算规则条件单元。
大于部分:指规则条件单元包涵>,>=这三种比较操作的运算规则条件单元。
规则标识(gid或者groupid):用于识别一条规则的id,一般为64位的无符号整数。
图1示出根据本发明的示例性实施例的规则匹配方法的流程图。在可替换实施例中,在执行图1中所示的流程图之前,所述规则匹配方法可对预存在数据库中的规则表达式进行预处理。所述预处理的具体步骤包括:根据规则表达式的各规则条件单元中携带的字段,将各规则条件单元归类到与各字段对应的规则集合中;根据规则集合中规则条件单元的条件关系,将每个规则集合中规则条件单元归类到与各条件关系对应的条件集合中。
也就是说,在对输入表达式进行规则匹配之前,需要对已有的规则表达式进行预处理。如上所示,可按照规则条件单元中的字段,对所有的规则表达式进行分类,进而得到与字段对应的规则集合。例如,假设存在以下10个规则,可以看出以下10个规则中的各个规则条件单元可被归类为与字段age(年龄)、salary(收入)、amount(当日交易金额)对应的三个规则集合。例如,对于规则1,将(age>10)归类为与字段age对应的规则集合,将(salary<10000)归类为与字段salary对应的规则集合,将amounts>=3000归类为与字段amount对应的规则集合。
规则1(g1):(age>10)&&(salary<10000)&&(amounts>=3000)
规则2(g2):(age<20)&&(salary<20000)&&(amounts>4000)
规则3(g3):(age>=30)&&(salary>30000)&&(amounts<1500)
规则4(g4):(age>35)&&(salary<=35000)&&(amounts<=3500)
规则5(g5):(age<=40)&&(salary==40000)&&(amounts==4000)
规则6(g6):(age>50)&&(salary>45000)&&(amounts>6000)
规则7(g7):(age>66)&&(salary<=56000)&&(amounts<9000)
规则8(g8):(age==72)&&(salary>76000)&&(amounts>=10000)
规则9(g9):(age>87)&&(salary==87000)&&(amounts<=5000)
规则10(g10):(age<=75)&&(salary<=7000)&&(amounts>500)
若出现新字段,则生成与新字段对应的规则集合。例如,规则:(age>30)&&(salary<10000)&&(card>5),则将(age>30)归类为字段age所在的规则集合,将(salary<10000)归类为字段salary所在的规则集合,而针对字段card,则生成与字段card对应的规则集合,将card>5归类为与字段card对应的规则集合。
将每个规则集合中规则条件单元归类到与各条件关系对应的条件集合中的步骤具体来说包括针对与各种字段对应的各种规则集合,利用每个规则集合所包括的规则条件单元中的条件关系,将每个规则集合划分为不同条件集合,也就是说,条件集合是规则集合利用条件关系划分的各个子集合。例如,根据包括在每个条件集合中的规则条件单元中的运算操作符的类型,将每个条件集合分为两个子集合,大于部分集合和小于部分集合,其中,大于部分包括大于、大于等于两种运算操作符,小于部分包括小于、小于等于、等于三种运算操作符。
针对以上10条规则,以字段age对应的规则集合为例,在该规则集合中,小于部分集合包括(age<20)、(age<=40)、(age==72)和(age<=75)四个规则条件单元,大于部分集合包括(age>10)、(age>=30)、(age>35)、(age>50)、(age>66)和(age>87)六个规则条件单元。
可按照以下表1来存储小于部分集合中的规则条件单元,具体来说,将在小于部分集合中的每个规则条件单元按照字段值、该字段值对应的运算操作符的标识以及规则条件单元所在的规则标识对应地存储。此外,将小于部分集合中的字段值按照从小到大的顺序进行排列。
字段值 sgid egid segid
20 2 NULL NULL
40 NULL NULL 5
72 NULL 8 NULL
75 NULL NULL 10
表1
在表1中,sgid表示操作符是<的规则id,egid表示操作符是==的规则id,segid表示操作符是<=的规则id。也就是说,sgid、egid和segid既包括字段值对应的运算操作符的标识又包括对应的规则标识。
在实际处理中,可将小于部分集合中的规则条件单元按照如下结构来构建节点:每个规则条件单元对应一个SNode,每个SNode包括字段值(value)、与该字段值对应的运算操作符以及与规则条件单元所在的规则标识(sgid、egid或segid)。
上面4个规则条件单元对应4个SNode,其中每个SNode的value对应的是20、40、72、75。对于每个SNode里的sgids成员是表示所有操作符是<的规则id(一般是uint64_t类型),egids成员是表示操作符是==的规则id,segids成员是表示操作符是<=的规则id。例如,与值20对应的SNode,它的sgids为2,其余的两个成员为空;与值40对应的SNode,它的segids成员里有一个gid,那就是5,其余两个成员为空;与值72对应的SNode,它的egids成员里有一个gid,那就是8,其余两个成员为空;与值75对应的SNode,它的segids成员里有一个gid,那就是10,其余两个成员为空。然后将所有的SNode按照value的值从小到大以数组形式存储。
可按照以下表2来存储大于部分集合中的规则条件单元,具体来说,将在大于部分集合中的每个规则条件单元按照字段值、该字段值对应的运算操作符的标识以及规则条件单元所在的规则标识对应地存储。此外,将大于部分集合中的字段值按照从大到小的顺序进行排列。
字段值 gtgid gegid
10 1 NULL
30 NULL 3
35 4 NULL
50 6 NULL
66 7 NULL
87 9 NULL
表2
在表2中,gtgid表示操作符是>的规则id,gegid表示操作符是>=的规则id。也就是说,gtgid、gegid既包括字段值对应的运算操作符的标识又包括对应的规则标识。
在实际处理中,可将小于部分集合中的规则条件单元按照如下结构来构建节点:每个规则条件单元对应一个BNode。每个BNode包括字段值、与该字段值对应的运算操作符以及与规则条件单元所在的规则标识。
编程实现方式与以上小于部分集合的实现方式类型,但应注意,大于部分集合是按照从大到小的顺序排列,比如上面的大于部分排列后的结果是(age>87),(age>66),(age>50),(age>35),(age>=30),和(age>10),然后根据这些值一一创建对应的BNode,确保相同的值只有一个BNode,上面6个规则条件单元对应87、66、50、35、30、10六个值,对应六个BNode,其中每个BNode的value填充的是上面提到的值(即87、66、50、35、30、10)。对于每个BNode里的gtgids成员是表示所有操作符是>的规则id(一般是uint64_t类型),gegids成员是表示操作符是>=的规则id。通过以上构建方式,对应于值是87的BNode,它的gtgids成员里有一个gid,那就是9,_gegids成员为空;对应于值是66的BNode,它的gtgids成员里有一个gid,那就是7,gegids成员为空;对应于值是50的BNode,它的gtgids成员里有一个gid,那就是6,gegids成员为空;对应于值是35的BNode,它的gtgids成员里有一个gid,那就是4,gegids成员为空;对应于值是30的BNode,它的gegids成员里有一个gid,那就是3,gtgids成员为空;对应于值是10的BNode,它的gtgids成员里有一个gid,那就是1,gegids成员为空。然后将所有的BNode按照value的值从大到小以数组形式存储。
此外,还可包括无限制集合,即对该表达式没有限制的集合,例如,存在规则表达式中没有字段age的情况,例如,规则11(g11):(salary<=6000)&&(amounts>5000),因此需要存储所有针对该字段没有限制的规则id。在实际处理中,可将该集合中的规则条件单元按照如下结构来构建节点:每一个规则条件单元对应一个NNode,每个NNode包括对字段没有限制条件的规则id(gid)。如上示例,由于存在规则11,所以它gid为是16。
可按照同样方式将与字段salary对应的集合划分为大于部分集合和小于部分集合,以及,可将与字段amounts对应的集合划分为大于部分集合和小于部分集合。并按照以上的方式来构建与字段salary对应的各个规则条件单元的各个节点以及与字段amounts对应的各个规则条件单元的各个节点。
随后如图1所示,在步骤S110,通过获取输入表达式的各待匹配规则条件单元中携带的各字段,确定与所述各字段对应的规则集合,其中,所述规则集合是规则条件单元组成的集合,规则集合中的各规则条件单元中具有相同的字段按照规则条件单元中的字段形成的集合。
具体来说,当对输入表达式进行规则匹配时,确定与所述表达式中包括的字段对应的规则集合。也就是说,在接收到对输入表达式进行规则匹配的命令时,先确定规则表达式中包括的所有字段,然后确定与各个字段对应的规则集合。
举例来说,在输入表达式是(age=30&&salary=10000&&amounts=9000)的情况下,当对该输入表达式中的待匹配规则条件单元进行规则匹配时,可先确定输入表达式中包括的字段age、字段salary和字段amount,然后再分别确定与字段age、字段salary和字段amount分别对应的规则集合。应注意,输入表达式包括用户直接输入的表达式也包括与用户输入所对应的表达式,例如,用户输入“张三”,则输入表达式包括与“张三”对应的表达式。
在步骤S120,通过将各待匹配的规则条件单元分别与其携带的字段对应的规则集合中的各条件集合进行匹配,并将匹配后的规则条件单元的集合作为最终规则集合,其中,条件集合是根据规则集合中的规则条件单元的条件关系而被划分的子集合。具体来说,可利用各待匹配规则条件单元中的字段值分别查找与规则条件单元对应的规则集合中的各个条件集合,即,将规则条件单元中的字段值直接定位到对应条件集合中与该字段值最接近值,定位方式或查找方式可包括二分查找方式,随后,将各条件集合中符合条件的各个规则条件单元汇总在一起,并将匹配后的规则条件单元的集合作为最终规则集合。
以上述输入表达式(age=30&&salary=10000&&amounts=9000)为例,针对规则条件单元age=30,在与字段age对应的规则集合的各个条件集合中查找值为30的节点。例如,可采用二分查找法在大于部分集合和小于部分集合分别查找值为30的节点。二分查找算法是在有序数组中用到的较为频繁的一种算法,在此将不再进行详细描述。在小于部分集合中,可将等于30或大于30的SNode节点都放到最终规则集合例如SET(age)中,而在大于部分集合中,可将等于30或大于30的SNode节点都放到最终规则集合SET(age)中,最后,可将字段age对应的NNode放在SET(age)里面。
如此看来,在采用本发明的方法在小于部分集合进行匹配时,当查找到值为30或比30的值大的SNode后,比30小的SNode将不再考虑,当在大于部分集合进行匹配时,当查找到值为30或比30大的BNode后,比30大的BNode将不再考虑。由此能够明显看出减少了匹配的工作量。
可按照同样方式获得与字段salary对应的最终规则集合SET(salary)以及与字段amounts对应的最终规则集合SET(amounts)。
随后,可根据连接所述规则表达式中的规则条件单元的运算符对各个规则条件单元对应的最终规则集合进行处理,从而获得满足所述输入表达式的规则集合。举例来说,在分别获得最终规则集合SET(age)、SET(salary)和最终规则集合SET(amounts)之后,根据连接各个规则条件单元的运算符&&,对这三个集合求交集,最终得到与所述输入表达式匹配的所有规则集合。
如上所示,根据本发明的规则匹配方法通过按照字段分为不同规则集合后进行匹配,避免了对输入表达式的每个规则条件单元都要进行匹配,大大节省了运算量,此外,通过分析各个规则条件单元的条件关系将各个规则条件单元所在的集合划分为不同的条件集合,这样本发明可利用各个规则集合的条件关系来进行规则匹配,使得规则匹配更智能。此外,在各个条件集合中进行匹配时,可通过将规则条件单元中的字段值直接定位到各个条件集合中最接近该值的位置,随后直接提取将符合条件的规则条件单元,从而大大减小了规则匹配的运算量。
图2是举例说明已有的规则表达式如何被处理。如图2所述,针对规则表达式(age<=40)&&(salary==40000)&&(amounts==4000),首先确定该规则表达式中所包括的字段,age、salary、amount,然后将该表达式中包括的规则表达单元分别放置到与相应字段对应的规则集合中。如图所示,可将每个字段对应的规则集合划分为不同的条件集合。应注意,图中的两个条件集合仅为示例,可根据需要划分为若干个条件集合。然后判断该表达式中的规则条件单元属于哪个条件集合,最后将规则条件单元对应地放置在相应地条件集合中。
图3示出根据本发明的示例性实施例的规则匹配设备的框图。如图3所示,规则匹配设备300包括确定模块310和获得模块320。本领域普通技术人员将理解:图3中的数据处理设备仅示出了与本示例性实施例相关的组件,还可包括除了图3中示出的组件之外的通用组件。
确定模块310通过获取输入表达式的各待匹配规则条件单元中携带的各字段,确定与所述各字段对应的规则集合,其中,所述规则集合是规则条件单元组成的集合,规则集合中的各规则条件单元中具有相同的字段按照规则条件单元中的字段形成的集合。
获得模块320通过将各待匹配的规则条件单元分别与其携带的字段对应的规则集合中的各条件集合进行匹配,并将匹配后的规则条件单元的集合作为最终规则集合,其中,条件集合是根据规则集合中的规则条件单元的条件关系而被划分的子集合。
在可替换实施例中,所述规则匹配设备300还包括预处理模块(未示出),所述预处理模块可将预存的规则表达式进行预处理,从而将预存的规则表达式归类到对应的集合中。具体来说,预处理模块可包括第一归类子模块和第二归类子模块。第一归类子模块可根据规则表达式的各规则条件单元中携带的字段,将各规则条件单元归类到与各字段对应的规则集合中。第二归类子模块可根据规则集合中规则条件单元的条件关系,将每个规则集合中规则条件单元归类到与各条件关系对应的条件集合中。
在可替换实施例中,规则匹配设备300还包括处理模块(未示出),处理模块根据连接所述输入表达式中的待匹配规则条件单元的运算符,对获得的各个最终规则集合进行处理,从而获得与所述输入表达式匹配的所有规则集合。
在可替换实施例中,第二归类子模块320根据包括在每个规则集合中的规则条件单元中的运算操作符的类型,将每个规则集合划分为大于部分集合和小于部分集合,其中,所述大于部分包括大于和大于等于两种运算操作符,小于部分包括小于、小于等于和等于两种运算操作符。
在可替换实施例中,规则匹配设备300还包括处理模块还包括存储模块(未示出),存储模块将归类到与各条件关系对应的条件集合中的规则条件单元按照字段值、该字段值对应的运算操作符的标识以及规则条件单元所在的规则标识对应地存储起来。
在可替换实施例中,存储模块将在大于部分集合中的所有规则条件单元按照字段值从大到小的顺序存储。
在可替换实施例中,存储模块将在小于部分集合中的所有规则条件单元按照字段值从小到大的顺序存储。
在可替换实施例中,获得模块320包括:确定子模块,确定所述输入表达式中包括的待匹配规则条件单元中的字段值;第一处理子模块,在大于部分集合中查找最接近所述字段值的值并提取与比所述最接近所述字段值的值小的所有值对应的规则;第二处理子模块,在小于部分集合中查找最接近所述字段值的值并提取与比所述最接近所述字段值的值大的所有值对应的规则;获得子模块,通过将大于部分集合提取的规则与在小于部分集合提取的规则进行合并,获得与所述规则条件单元匹配的最终规则集合。
在可替换实施例中,第二归类子模块可针对与规则表达式中不存在的字段对应的集合,所述集合在划分为大于部分集合和小于部分集合后,增加不受限制集合。
在可替换实施例中,获得子模块通过将大于部分集合提取的规则、在小于部分集合提取的规则以及不受限制集合中包括的规则进行合并,获得与所述规则条件单元匹配的最终规则集合。
如上所述,根据本发明的示例性实施例的规则匹配设备通过按照字段分为不同规则集合后进行匹配,避免了对输入表达式的每个规则条件单元都要进行匹配,大大节省了运算量,此外,通过分析各个规则条件单元的条件关系将各个规则条件单元的规则集合划分为不同的条件集合,这样本发明可利用各个集合的特定条件关系来进行规则匹配,使得规则匹配更智能。此外,在各个条件集合中进行匹配时,可通过将规则条件单元中的字段值直接定位到各个条件集合中最接近该值的位置,随后直接提取将符合条件的规则条件单元,从而大大减小了规则匹配的运算量。
图4示出根据本发明的示例性实施例的执行规则匹配方法的电子设备的框图。参考图4,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成的规则匹配装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
此外,本申请实施例还公开了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使电子设备执行图1所示实施例的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的物品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序物品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序物品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序物品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程库存扣减设备的处理器以产生一个机器,使得通过计算机或其他可编程库存扣减设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程库存扣减设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程库存扣减设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (20)

1.一种规则匹配方法,其特征在于,包括:
通过获取输入表达式的各待匹配规则条件单元中携带的各字段,确定与所述各字段对应的规则集合,其中,所述规则集合是规则条件单元组成的集合,规则集合中的各规则条件单元中具有相同的字段;
通过将各待匹配的规则条件单元分别与其携带的字段对应的规则集合中的各条件集合进行匹配,并将匹配后的规则条件单元的集合作为最终规则集合,其中,条件集合是根据规则集合中的规则条件单元的条件关系而被划分的子集合。
2.如权利要求1所述的方法,其特征在于,在通过获取输入表达式的各待匹配规则条件单元中携带的各字段确定与所述各字段对应的规则集合之前,还包括:
根据规则表达式的各规则条件单元中携带的字段,将各规则条件单元归类到与各字段对应的规则集合中;
根据规则集合中规则条件单元的条件关系,将每个规则集合中规则条件单元归类到与各条件关系对应的条件集合中。
3.如权利要求2所述的方法,其特征在于,将每个规则集合中规则条件单元归类到与各条件关系对应的条件集合中之后,还包括:将归类到与各条件关系对应的条件集合中的规则条件单元按照字段值、该字段值对应的运算操作符的标识以及规则条件单元所在的规则标识对应地存储。
4.如权利要求1所述的方法,其特征在于,将匹配后的各条件集合作为最终规则集合之后,还包括:
根据连接所述输入表达式中的各待匹配规则条件单元的运算符,对获得的各最终规则集合进行处理,从而获得与所述输入表达式匹配的所有规则集合。
5.如权利要求2所述的方法,其特征在于,根据规则集合中规则条件单元的条件关系,将每个规则集合中规则条件单元归类到与各条件关系对应的条件集合中包括:
根据包括在每个规则集合中的规则条件单元中的运算操作符的类型,将每个规则集合划分为大于部分集合和小于部分集合,其中,所述大于部分包括大于和大于等于两种运算操作符,小于部分包括小于、小于等于和等于三种运算操作符。
6.如权利要求5所述的方法,其特征在于,将在大于部分集合中的所有规则条件单元按照字段值从大到小的顺序存储。
7.如权利要求5所述的方法,其特征在于,将在小于部分集合中的所有规则条件单元按照字段值从小到大的顺序存储。
8.如权利要求5所述的方法,其特征在于,通过将各待匹配的规则条件单元分别与其携带的字段对应的规则集合中的各条件集合进行匹配,并将匹配后的各条件集合作为最终规则集合包括:
确定所述输入表达式中包括的待匹配规则条件单元中的字段值;
在大于部分集合中查找最接近所述字段值的值并提取与比所述最接近所述字段值的值小的所有值对应的规则;
在小于部分集合中查找最接近所述字段值的值并提取与比所述最接近所述字段值的值大的所有值对应的规则;
通过将大于部分集合提取的规则与在小于部分集合提取的规则进行合并,获得与所述规则条件单元匹配的最终规则集合。
9.如权利要求8所述的方法,其特征在于,根据包括在每个规则集合中的规则条件单元中的运算操作符的类型将所述集合划分为大于部分集合和小于部分集合之后还包括:针对与输入表达式中不存在的字段对应的集合,所述集合在划分为大于部分集合和小于部分集合后,增加不受限制集合。
10.如权利要求9所述的方法,其特征在于,通过将大于部分集合提取的规则与在小于部分集合提取的规则进行合并获得与所述规则条件单元匹配的最终规则集合还包括:通过将大于部分集合提取的规则、在小于部分集合提取的规则以及不受限制集合中包括的规则进行合并,获得与所述规则条件单元匹配的最终规则集合。
11.一种规则匹配设备,其特征在于,包括:
确定模块,通过获取输入表达式的各待匹配规则条件单元中携带的各字段,确定与所述各字段对应的规则集合,其中,所述规则集合是规则条件单元组成的集合,规则集合中的各规则条件单元中具有相同的字段按照规则条件单元中的字段形成的集合;
获得模块,通过将各待匹配的规则条件单元分别与其携带的字段对应的规则集合中的各条件集合进行匹配,并将匹配后的规则条件单元的集合作为最终规则集合,其中,条件集合是根据规则集合中的规则条件单元的条件关系而被划分的子集合。
12.如权利要求11所述的设备,其特征在于,还包括:预处理模块,其中,所述预处理模块包括:
第一归类子模块,根据规则表达式的各规则条件单元中携带的字段,将各规则条件单元归类到与各字段对应的规则集合中;
第二归类子模块,根据规则集合中规则条件单元的条件关系,将每个规则集合中规则条件单元归类到与各条件关系对应的条件集合中。
13.如权利要求11所述的设备,其特征在于,还包括:存储模块,将归类到与各条件关系对应的条件集合中的规则条件单元按照字段值、该字段值对应的运算操作符的标识以及规则条件单元所在的规则标识对应地存储。
14.如权利要求11所述的设备,其特征在于,还包括:
处理模块,根据连接所述输入表达式中的各待匹配规则条件单元的运算符,对获得的各个最终规则集合进行处理,从而获得与所述输入表达式匹配的所有规则集合。
15.如权利要求12所述的设备,其特征在于,第二归类子模块根据包括在每个规则集合中的规则条件单元中的运算操作符的类型,将每个规则集合划分为大于部分集合和小于部分集合,其中,所述大于部分包括大于和大于等于两种运算操作符,小于部分包括小于、小于等于和等于两种运算操作符。
16.如权利要求15所述的设备,其特征在于,存储模块将在大于部分集合中的所有规则条件单元按照字段值从大到小的顺序存储并且将在小于部分集合中的所有规则条件单元按照字段值从小到大的顺序存储。
17.如权利要求15所述的方法,其特征在于,获得模块包括:
确定子模块,确定所述输入表达式中包括的待匹配规则条件单元中的字段值;
第一处理子模块,在大于部分集合中查找最接近所述字段值的值并提取与比所述最接近所述字段值的值小的所有值对应的规则;
第二处理子模块,在小于部分集合中查找最接近所述字段值的值并提取与比所述最接近所述字段值的值大的所有值对应的规则;
获得子模块,通过将大于部分集合提取的规则与在小于部分集合提取的规则进行合并,获得与所述规则条件单元匹配的最终规则集合。
18.如权利要求17所述的设备,其特征在于,第二归类子模块针对与输入表达式中不存在的字段对应的集合,所述集合在划分为大于部分集合和小于部分集合后,增加不受限制集合。
19.如权利要求18所述的设备,其特征在于,获得子模块通过将大于部分集合提取的规则、在小于部分集合提取的规则以及不受限制集合中包括的规则进行合并,获得与所述规则条件单元匹配的最终规则集合。
20.一种规则匹配设备,其特征在于,包括:
处理器;以及
被安排成存储计算机课执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
通过获取输入表达式的各待匹配规则条件单元中携带的各字段,确定与所述各字段对应的规则集合,其中,所述规则集合是规则条件单元组成的集合,规则集合中的各规则条件单元中具有相同的字段;
通过将各待匹配的规则条件单元分别与其携带的字段对应的规则集合中的各条件集合进行匹配,并将匹配后的规则条件单元的集合作为最终规则集合,其中,条件集合是根据规则集合中的规则条件单元的条件关系而被划分的子集合。
CN201710089132.XA 2017-02-20 2017-02-20 规则匹配方法及其设备 Pending CN108460038A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710089132.XA CN108460038A (zh) 2017-02-20 2017-02-20 规则匹配方法及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710089132.XA CN108460038A (zh) 2017-02-20 2017-02-20 规则匹配方法及其设备

Publications (1)

Publication Number Publication Date
CN108460038A true CN108460038A (zh) 2018-08-28

Family

ID=63221953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710089132.XA Pending CN108460038A (zh) 2017-02-20 2017-02-20 规则匹配方法及其设备

Country Status (1)

Country Link
CN (1) CN108460038A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359277A (zh) * 2018-10-22 2019-02-19 众安在线财产保险股份有限公司 数据监控方法、设备及计算机存储介质
CN112114970A (zh) * 2020-09-28 2020-12-22 中国建设银行股份有限公司 规则配置方法及装置
CN112148694A (zh) * 2019-06-28 2020-12-29 华为技术有限公司 一种用于电子设备的数据压缩、数据解压方法及电子设备
CN112364059A (zh) * 2020-11-10 2021-02-12 平安普惠企业管理有限公司 多规则场景下关联匹配方法、装置、设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102257496A (zh) * 2009-12-07 2011-11-23 埃森哲环球服务有限公司 用于加速的数据质量增强的方法和系统
CN102857493A (zh) * 2012-06-30 2013-01-02 华为技术有限公司 内容过滤方法和装置
CN103049516A (zh) * 2012-12-14 2013-04-17 北京神州绿盟信息安全科技股份有限公司 一种数据处理方法及装置
CN103973684A (zh) * 2014-05-07 2014-08-06 北京神州绿盟信息安全科技股份有限公司 规则编译匹配方法及装置
CN104038389A (zh) * 2014-06-19 2014-09-10 高长喜 多重应用协议识别方法和装置
US20140344233A1 (en) * 2013-05-16 2014-11-20 Fujitsu Limited Server apparatus, and data extraction method
CN104216894A (zh) * 2013-05-31 2014-12-17 国际商业机器公司 用于数据查询的方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102257496A (zh) * 2009-12-07 2011-11-23 埃森哲环球服务有限公司 用于加速的数据质量增强的方法和系统
CN102857493A (zh) * 2012-06-30 2013-01-02 华为技术有限公司 内容过滤方法和装置
CN103049516A (zh) * 2012-12-14 2013-04-17 北京神州绿盟信息安全科技股份有限公司 一种数据处理方法及装置
US20140344233A1 (en) * 2013-05-16 2014-11-20 Fujitsu Limited Server apparatus, and data extraction method
CN104216894A (zh) * 2013-05-31 2014-12-17 国际商业机器公司 用于数据查询的方法和系统
CN103973684A (zh) * 2014-05-07 2014-08-06 北京神州绿盟信息安全科技股份有限公司 规则编译匹配方法及装置
CN104038389A (zh) * 2014-06-19 2014-09-10 高长喜 多重应用协议识别方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359277A (zh) * 2018-10-22 2019-02-19 众安在线财产保险股份有限公司 数据监控方法、设备及计算机存储介质
CN112148694A (zh) * 2019-06-28 2020-12-29 华为技术有限公司 一种用于电子设备的数据压缩、数据解压方法及电子设备
CN112148694B (zh) * 2019-06-28 2022-06-14 华为技术有限公司 一种用于电子设备的数据压缩、数据解压方法及电子设备
CN112114970A (zh) * 2020-09-28 2020-12-22 中国建设银行股份有限公司 规则配置方法及装置
CN112364059A (zh) * 2020-11-10 2021-02-12 平安普惠企业管理有限公司 多规则场景下关联匹配方法、装置、设备和存储介质
CN112364059B (zh) * 2020-11-10 2023-12-22 国网甘肃省电力公司白银供电公司 多规则场景下关联匹配方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN108305158B (zh) 一种训练风控模型和风控的方法、装置及设备
CN108280755A (zh) 可疑洗钱团伙的识别方法和识别装置
CN108460038A (zh) 规则匹配方法及其设备
CN111080304B (zh) 一种可信关系识别方法、装置及设备
CN108205580A (zh) 一种图像检索方法、装置及计算机可读存储介质
CN111160140B (zh) 一种图像检测方法及装置
CN104423968B (zh) 设计业务逻辑的方法、执行其的服务器和储存媒介
Li et al. Discover and mitigate unknown biases with debiasing alternate networks
CN112560444A (zh) 文本处理方法、装置、计算机设备和存储介质
CN114429222A (zh) 一种模型的训练方法、装置及设备
CN108346098A (zh) 一种风控规则挖掘的方法及装置
CN110019298A (zh) 数据处理方法和装置
CN108415912A (zh) 基于MapReduce模型的数据处理方法和设备
CN109933678A (zh) 艺术品推荐方法、装置、可读介质及电子设备
CN109117475A (zh) 一种文本改写的方法以及相关设备
CN108197660A (zh) 多模型特征融合方法/系统、计算机可读存储介质及设备
WO2017095439A1 (en) Incremental clustering of a data stream via an orthogonal transform based indexing
CN107832446A (zh) 一种配置项信息的搜索方法及计算设备
Bera et al. Fair k-center clustering in MapReduce and streaming settings
CN103995831B (zh) 基于物品间相似度的物品处理方法、系统和装置
CN117390480A (zh) 一种信息提取方法、装置、设备及存储介质
CN109558432A (zh) 数据处理方法及装置
CN106294530A (zh) 规则匹配的方法和系统
Yuan et al. Matching recommendations based on siamese network and metric learning
CN112967044B (zh) 一种支付业务的处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180828

RJ01 Rejection of invention patent application after publication