CN111274274B - 规则匹配方法、装置、电子设备及存储介质 - Google Patents
规则匹配方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111274274B CN111274274B CN202010081854.2A CN202010081854A CN111274274B CN 111274274 B CN111274274 B CN 111274274B CN 202010081854 A CN202010081854 A CN 202010081854A CN 111274274 B CN111274274 B CN 111274274B
- Authority
- CN
- China
- Prior art keywords
- identification code
- rule
- tree
- appointed
- identity
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000015654 memory Effects 0.000 claims description 19
- 240000002044 Rhizophora apiculata Species 0.000 claims description 9
- 230000006978 adaptation Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 9
- 238000001914 filtration Methods 0.000 description 7
- 238000010845 search algorithm Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000013499 data model Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了规则匹配方法、装置、电子设备及存储介质,涉及规则引擎技术领域。具体实现方案为:从业务数据中获取身份识别码;基于身份识别码,在预存储的平衡查找树中进行逐层查找,其中,所述平衡查找树是根据指定的身份识别码生成的,用于查找所述指定的身份识别码对应的业务规则;将查找到的身份识别码对应的业务规则确定为业务数据对应的业务规则。本申请实施例可提高规则查找的时效,提高系统运行效率。
Description
技术领域
本申请涉及一种信息技术领域,尤其涉及一种规则引擎技术领域。
背景技术
通常,规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来。规则引擎实现的功能可包括接受数据输入,解释业务规则,并根据业务规则做出业务决策。已有的规则引擎通常支持的规则数量规模比较小,常用的处理方式是将业务数据存储于关系型数据表中,例如存储于二维数据表中,这种数据组织形式限制了规则引擎的性能。原因在于,对于所有的业务数据,都需要在遍历全部的规则的情况下才能查找到对应的适配规则,在规则数量多的情况下,规则加载和更新的时效较低,导致规则引擎的运行效率明显下降。
发明内容
本申请实施例提出一种规则匹配方法、装置、电子设备及存储介质,以至少解决现有技术中的以上技术问题。
第一方面,本申请实施例提供了一种规则匹配方法,包括:
从业务数据中获取身份识别码;
基于身份识别码,在预存储的平衡查找树中进行逐层查找,其中,所述平衡查找树是根据指定的身份识别码生成的,用于查找所述指定的身份识别码对应的业务规则;
将查找到的身份识别码对应的业务规则确定为业务数据对应的业务规则。
本申请实施例中将身份识别码通过平衡查找树组织起来,使用平衡查找树查找算法对业务数据对应的个体进行查找并过滤,通过过滤可减少需要适用规则的数据的规模,可提高规则加载、更新和查找的时效,提高系统的运行效率。
在一种实施方式中,方法还包括:
如果指定的身份识别码对应的业务规则发生更新,则对平衡查找树中与指定的身份识别码对应的叶子节点进行更新。
本申请实施例中,通过规则的最小化动态加载,降低了动态加载规则的系统开销和时间开销。
在一种实施方式中,将在平衡查找树中查找到的身份识别码对应的业务规则确定为业务数据对应的业务规则之后,还包括:
对业务数据执行对应的业务规则。
本申请实施例中,通过从根节点到叶子节点的路径可查找到指定的身份识别码,在叶子节点中获取业务数据对应的业务规则,进而触发执行业务数据对应的业务规则,通过高效率的规则匹配实现了规则引擎对业务系统的支持服务。
在一种实施方式中,平衡查找树中与指定的身份识别码对应的叶子节点用于存储指定的身份识别码对应的业务规则;
平衡查找树中从根节点到叶子节点的路径上的多个节点分别用于存储指定的身份识别码的多个部分;
其中,通过预先设置的分级命名规则对身份识别码进行拆分以获得身份识别码的多个部分。
本申请实施例中,根据指定的身份识别码预先构建平衡查找树,将身份识别码通过平衡查找树组织起来,通过这种数据组织形式可明显提高规则加载、更新和查找的时效。
在一种实施方式中,分级命名规则包括:身份识别码对应的多个级别以及各个级别所占据的位数。
本申请实施例中,将分级命名的身份识别码存储于平衡查找树中,并将各个级别的标识码与平衡查找树的各个层次的节点的值相对应,明显提高了查找效率。
在一种实施方式中,平衡查找树包括红黑树或平衡多路查找树。
本申请实施例中,可根据系统的应用需求和业务数据的结构特征选择适当类型的平衡查找树。例如红黑树可在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。
第二方面,本申请实施例提供了一种规则匹配装置,包括:
获取单元,用于从业务数据中获取身份识别码;
查找单元,用于基于身份识别码,在预存储的平衡查找树中进行逐层查找,其中,所述平衡查找树是根据指定的身份识别码生成的,用于查找所述指定的身份识别码对应的业务规则;
规则适配单元,用于将查找到的身份识别码对应的业务规则确定为业务数据对应的业务规则。
在一种实施方式中,上述装置还包括存储单元,存储单元用于:
如果指定的身份识别码对应的业务规则发生更新,则对平衡查找树中与指定的身份识别码对应的叶子节点进行更新。
在一种实施方式中,上述装置还包括执行单元,执行单元用于:
对业务数据执行对应的业务规则。
在一种实施方式中,平衡查找树中与指定的身份识别码对应的叶子节点用于存储指定的身份识别码对应的业务规则;
平衡查找树中从根节点到叶子节点的路径上的多个节点分别用于存储指定的身份识别码的多个部分;
其中,通过预先设置的分级命名规则对身份识别码进行拆分以获得身份识别码的多个部分。
在一种实施方式中,分级命名规则包括:身份识别码对应的多个级别以及各个级别所占据的位数。
在一种实施方式中,平衡查找树包括红黑树或平衡多路查找树。
第三方面,本申请实施例提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本申请任意一项实施例所提供的方法。
第四方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使该计算机执行本申请任意一项实施例所提供的方法。
上述申请中的一个实施例具有如下优点或有益效果:本申请实施例中将身份识别码通过平衡查找树组织起来,使用平衡查找树查找算法对业务数据对应的个体进行查找并过滤,通过过滤可减少需要适用规则的数据的规模,可明显提高规则加载、更新和查找的时效,提高了系统的运行效率。例如,可支持数十万规模规则和海量数据的规则引擎。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请一个实施例的规则匹配方法的流程图;
图2是根据本申请实施例的规则匹配方法生成的红黑树结构的效果示意图;
图3是本申请另一实施例的规则匹配方法的流程图;
图4是本申请一个实施例的规则匹配装置的结构示意图;
图5是本申请另一实施例的规则匹配装置的结构示意图;
图6是本申请实施例的电子设备的结构框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是本申请一个实施例的规则匹配方法的流程图。参见图1,该规则匹配方法包括:
步骤S110,从业务数据中获取身份识别码;
步骤S120,基于身份识别码,在预存储的平衡查找树中进行逐层查找,其中,所述平衡查找树是根据指定的身份识别码生成的,用于查找所述指定的身份识别码对应的业务规则;
步骤S130,将查找到的身份识别码对应的业务规则确定为业务数据对应的业务规则。
在某些领域,需要针对某类型的海量的纷杂的个体定制海量的规则。例如,在电子商城促销的应用场景中,每个消费者可以看作是一个个体,可针对每个消费者定制适配规则。消费者在电子商城购物的过程中,会产生购物流程相关的业务数据。在一个示例中,一条业务数据的内容可包括:消费者(个体)买了几件商品,各花费多少钱,每件商品属于什么类别。在这个示例中,预定的规则可包括:在消费者花费超过预定阈值的情况下,对订单价格打折优惠。在上述规则中,规则触发相关的后续行为是对订单价格打折优惠。
在上述示例中,可以分别为每个消费者定制适配规则。在另一个实施方式中,还可以针对消费者的实体定制规则。其中,实体可以看作是消费者的类,个体是实例化之后的实体。也就是说,属于同一个类的消费者可以有共用的适配规则。
在以上示例的应用场景中,可使用规则引擎为个体产生的业务数据查找对应的适配规则。规则引擎实现的功能可包括接受数据输入,解释业务规则,并根据业务规则做出业务决策。
通常情况下,业务数据可包括业务系统的访问记录。在一个示例中,业务系统的访问记录的存储形式是一条条的日志信息。需要将上述信息转换成适配于规则引擎使用的预定格式,以方便在规则引擎里查找相关的适配规则。例如,可对业务系统产生的海量数据进行预处理,预处理可以包括格式转换和归一化元信息。格式转换可包括将业务系统的访问记录转换成与规则引擎的数据接收接口适配的预定格式。预定格式可包括设置指定数据的数据类型,如将手机号设置为整型,将姓名设置为字符串等。
通常情况下,业务系统每天会产生海量的业务数据。例如,一个电子商城购物系统每天可能会产生一亿条数据。该一亿条数据可能是由一百万个用户产生的,其中的十万用户是VIP(Very Important Person,重要人物)客户。在一个示例中,商家关注的是VIP客户,制定打折优惠等促销规则也是针对VIP客户。因此,需要针对业务数据进行过滤,将不关注的那部分用户产生的业务数据过滤掉。
实现过滤的一种方式可包括:构建平衡查找树,在平衡查找树中,只存储商家关注的信息,例如只存储VIP客户的相关信息。对于业务系统中产生的一条数据,例如某个个体新产生一条购买记录,若在平衡查找树中查找不到该个体的相关信息,则将其过滤掉。
根据本申请的实施例,在步骤S110中,接收业务系统产生的业务数据,并从业务数据中获取身份识别码。例如,身份识别码可以是从业务数据中提取出待处理的个体标识(ID,Identity document)。个体标识可包括身份证号、手机号码、注册账号等。在一个示例中,新产生的一条业务数据为:注册账号为“50354540”的个体购买了一台空调,售价为2200元。则可从该条业务数据中提取出个体标识“50354540”。
在为该条业务数据查找适配规则之前,还需要根据指定的身份识别码构建平衡查找树,也就是将商家关注的信息存储在平衡查找树中。例如,可在平衡查找树中只存储VIP客户的注册账号及其对应的适配规则。在上述示例中,若注册账号为“50354540”的个体是VIP客户,则在平衡查找树中存储该个体的身份识别码以及对应的适配规则。例如,注册账号为“50354540”的个体的适配规则是购买售价超过2000元的商品的情况下,对订单价格打九折优惠。
在步骤S120中,使用平衡查找树的查找算法,在预存储的平衡查找树中查找与所述待处理的身份识别码匹配的指定的身份识别码。在上述示例中,由于在平衡查找树中预先存储了注册账号为“50354540”的个体的身份识别码以及对应的适配规则,因此在平衡查找树中可以找到相关信息。
在步骤S130中,将在所述平衡查找树中查找到的身份识别码对应的业务规则确定为业务数据对应的业务规则。在上述示例中,可将注册账号为“50354540”的个体的身份识别码的适配规则,即“购买售价超过2000元的商品的情况下,对订单价格打九折优惠”确定为业务数据对应的业务规则。由于业务数据为:注册账号为“50354540”的个体购买了一台空调,售价为2200元。在触发的后续行为中执行该业务规则,针对该订单将会给予九折优惠。
本申请实施例中将身份识别码通过平衡查找树组织起来,使用平衡查找树查找算法对业务数据对应的个体进行查找并过滤,通过过滤可减少需要适用规则的数据的规模,可明显提高规则加载、更新和查找的时效,提高了系统的运行效率。例如,可支持数十万规模规则和海量数据的规则引擎。在某些需要个性化定制较多规则的应用场景中,能够发挥较大的作用。
在一种实施方式中,平衡查找树中与指定的身份识别码对应的叶子节点用于存储指定的身份识别码对应的业务规则;
平衡查找树中从根节点到叶子节点的路径上的多个节点分别用于存储指定的身份识别码的多个部分;
其中,通过预先设置的分级命名规则对身份识别码进行拆分以获得身份识别码的多个部分。
在这种实施方式中,平衡查找树中与指定的身份识别码的对应的叶子节点,用于存储指定的身份识别码对应的业务规则;平衡查找树中从根节点到叶子节点的路径上的节点,用于存储指定的身份识别码;平衡查找树中各个层次的节点的值,用于存储指定的身份识别码的各个级别的标识码,其中,指定的身份识别码的各个级别的标识码是根据预先设置的分级命名规则而确定的。
本申请实施例中,根据指定的身份识别码预先构建平衡查找树,将身份识别码通过平衡查找树组织起来,通过这种数据组织形式可明显提高规则加载、更新和查找的时效。
在一种实施方式中,分级命名规则包括:身份识别码对应的多个级别以及各个级别所占据的位数。在一个示例中,分级命名规则可包括:构成指定的身份识别码的各个部分对应的各个级别,以及使用指定位数的标识码表示构成指定的身份识别码的各个部分。
本申请实施例中,将分级命名的身份识别码存储于平衡查找树中,并将各个级别的标识码与平衡查找树的各个层次的节点的值相对应,明显提高了查找效率。
在一种实施方式中,平衡查找树包括红黑树或平衡多路查找树。
本申请实施例中,可根据系统的应用需求和业务数据的结构特征选择适当类型的平衡查找树。例如红黑树可在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。
在数据结构中,查找树是一种使数据保持有序结构的树,它是可以维持动态平衡的有序树。平衡树,即平衡二叉树,具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡查找树兼具以上平衡树和查找树的性质。
红黑树(Red Black Tree)是一种平衡查找树。具体地说,红黑树是一种自平衡二叉查找树。红黑树是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。红黑树的最坏情况运行时间也是非常良好的,并且在实践中是高效的。它可以在O(log n)时间内做查找、插入和删除,这里的n是树中元素的数目。
红黑树是每个节点都带有颜色属性的二叉查找树,颜色属性包括红色或黑色。在二叉查找树强制的一般要求以外,对于任何有效的红黑树增加了如下的额外要求:
性质1.节点是红色或黑色。
性质2.根节点是黑色。
性质3每个红色节点的两个子节点都是黑色。也就是说,从每个叶子到根的所有路径上不能有两个连续的红色节点。
性质4.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
这些约束强制了红黑树的关键性质:从根节点到叶子节点的最长的可能路径不多于最短的可能路径的两倍长。以上约束产生的结果是红黑树大致上是平衡的。因为操作(比如插入、删除和查找)某个值的最坏情况时间都要求与树的高度成比例,这个在高度上的理论上限允许红黑树在最坏情况下都是高效的,其性能优于普通的二叉查找树。
上述性质3导致路径上不能有两个连续的红色节点,从而使得最短的可能路径都是黑色节点,最长的可能路径有交替的红色和黑色节点。根据上述性质4,所有最长的路径都有相同数目的黑色节点,这就表明了没有路径能多于任何其他路径的两倍长。
平衡多路查找树也称为B树,它是一种平衡的多叉树。
以红黑树为例,构建红黑树的过程可包括将在业务系统中指定的身份识别码的相关信息逐个存储到红黑树中。相关信息可包括每个个体的身份识别码以及身份识别码对应的业务规则。例如,针对业务系统中的某类实体,在红黑树中动态地新增每个需要适用规则的个体的相关信息。可以提前针对使用的场景,采用模板的方式产生每个个体的身份识别码以及指定的身份识别码对应的业务规则等。在一个示例中,业务规则的模板的内容可包括:条件和输出结果。例如,条件是购买售价超过2000元的商品,输出结果是对订单价格打九折优惠。在产生针对某个新增的个体的个性化适配规则的同时,可将该适配规则保存到规则库中,并将新增的个体添加到红黑树中。
一个示例性的红黑树构建过程可包括:根据指定的个体标识生成平衡查找树的各个层次的结点的值;将指定的个体标识对应的业务规则,存储于平衡查找树中与指定的个体标识的对应的叶子节点中。其中,个体标识包括根据预先设置的分级命名规则而确定的各个级别的标识码。
例如,个体标识可以是身份证号。对于身份证号而言,分级命名规则包括:(1)构成指定的身份识别码的各个部分对应的各个级别,即身份证号对应的地址信息、身份证号对应的生日信息和身份证号对应的性别信息。(2)使用指定位数的标识码表示构成所述指定的身份识别码的各个部分,即用6位数的标识码表示身份证号对应的地址信息、用8位数的标识码表示身份证号对应的生日信息,以及用1位数的标识码表示身份证号对应的性别信息。
再如,个体标识可以是注册账号。图2是根据本申请实施例的规则匹配方法生成的红黑树结构的效果示意图。如图2所示,实线圆圈表示黑色节点,虚线圆圈表示红色节点。在图2的示例中,个体标识是注册账号。对于注册账号而言,分级命名规则包括:(1)构成指定的身份识别码的各个部分对应的各个级别,比如注册账号对应的一级账号名、注册账号对应的二级账号名和注册账号对应的三级账号名等。(2)使用指定位数的标识码表示构成所述指定的身份识别码的各个部分,比如用2位数的标识码分别表示注册账号对应的一级账号名、注册账号对应的二级账号名和注册账号对应的三级账号名等。
如图2所示,红黑树中从根节点到叶子节点的路径上的节点,用于存储指定的身份识别码,即注册账号。红黑树中各个层次的节点的值,用于存储指定的身份识别码的各个级别的标识码,即注册账号对应的一级账号名、注册账号对应的二级账号名和注册账号对应的三级账号名等。例如,对于图2所示的红黑树中的值为“40”的叶子节点,其所对应的从根节点到叶子节点的路径上的节点分别是“50”、“35”、“45”、“40”,这四个数值分别为对应的一级账号名、注册账号对应的二级账号名、注册账号对应的三级账号名和注册账号对应的四级账号名。上述各个级别的标识码连接在一起构成了一个完整的注册账号。也就是说,从根节点到叶子节点的路径上的所有节点用于存储一个完整的注册账号。
在上述示例中,根据指定的个体标识生成平衡查找树的各个层次的结点的值,可包括:将指定的个体标识按照分级命名规则拆分成各个级别的标识符;利用平衡查找树中从根节点到叶子节点的路径上的所有节点,存储指定的个体标识,并且按照各个级别的标识码分别生成平衡查找树的各个层次的结点的值。
在图2所示的示例中,将50354540、507856、503527这些需要适配个性化规则的个体的身份识别码通过红黑树组织起来,并且在叶子节点中存储该个体的适配规则。通过红黑树查找算法,在叶子节点中获取该个体的适配规则。若在平衡查找树中查找不到该个体的相关信息,则将其过滤掉。通过过滤可减少需要适用规则的数据的规模,可明显提高规则加载、更新和查找的时效,提高了系统的运行效率。
在一个示例中,可在叶子节点中保存适配规则的名称列表。每次新增规则或者删除、修改规则的时候,更新红黑树相关的叶子节点中记录的适配规则的名称列表。如前述,采用了红黑树作为数据的组织形式,可以提供在O(logn)时间复杂度内的查找数据,其中,n为红黑树中的节点数。
在一种实施方式中,所述方法还包括:
如果指定的身份识别码对应的业务规则发生更新,则对平衡查找树中与指定的身份识别码对应的叶子节点进行更新。
在这种实施方式中,在指定的身份识别码对应的业务规则更新的情况下,将更新的业务规则存储于平衡查找树中与指定的身份识别码的对应的叶子节点中。如前述,构建红黑树的过程可包括将在业务系统中指定的身份识别码的相关信息逐个存储到红黑树中。在创建红黑树之后,可定期进行规则的最小化动态加载。其中,加载的过程包括把规则存储到红黑树中。最小化动态加载包括只加载发生改变的规则。例如,除了系统首次启动时加载全部在有效期内的规则外,系统可动态检测规则库,并将规则库中的规则和已加载的规则对比,得到发生改变的规则。只加载发生改变的规则到规则引擎系统中,最小化动态加载规则可降低的系统的资源开销和时间开销。
本申请实施例中,通过规则的最小化动态加载,降低了动态加载规则的系统开销和时间开销。
图3是本申请另一实施例的规则匹配方法的流程图。图3实施例与图1实施例的不同之处主要在于,在图1实施例使用平衡查找树的查找算法,在预存储的平衡查找树中查找到业务数据对应的业务规则之后,利用图3实施例进一步对业务数据执行对应的业务规则。
如图3所示,该规则匹配方法包括:
步骤S210,从业务数据中获取身份识别码;
步骤S220,基于身份识别码,在预存储的平衡查找树中进行逐层查找,其中,所述平衡查找树是根据指定的身份识别码生成的,用于查找所述指定的身份识别码对应的业务规则;
步骤S230:将查找到的身份识别码对应的业务规则确定为业务数据对应的业务规则;步骤S240,对业务数据执行对应的业务规则。
在本实施例中,在步骤S240之前,可从查找到的身份识别码对应的叶子节点中获取业务数据对应的业务规则。然后执行步骤S240,触发执行业务数据对应的业务规则,由此实现规则引擎对业务系统的支持服务。
在一个示例中,可对业务系统产生的海量数据进行预处理,将上述数据转换成适配于规则引擎使用的预定格式,以方便在规则引擎里查找相关的适配规则。例如针对业务系统产生的某一类型的数据,利用预先定义的数据meta(元信息),将其处理成规则引擎可以处理的数据Model(模型)。采用红黑树查找算法过滤数据,得到匹配的需要适用规则的数据model,并且在叶子节点中找到该数据model需要使用的适配规则。然后将匹配的数据model触发适用对应的规则,调用相关函数算法,触发后续的行为。例如,新产生的一条业务数据为:注册账号为“50354540”的个体购买了一台空调,售价为2200元。在红黑树中查找到注册账号为“50354540”的个体的适配规则是购买售价超过2000元的商品的情况下,对订单价格打九折优惠。则调用相关函数算法触发执行该业务规则,针对该订单将会给予九折优惠。
本申请实施例中,通过从根节点到叶子节点的路径可查找到指定的身份识别码,在叶子节点中获取业务数据对应的业务规则,进而触发执行业务数据对应的业务规则,通过高效率的规则匹配实现了规则引擎对业务系统的支持服务。
图4是本申请一个实施例的规则匹配装置的结构示意图。如图4所示,本申请实施例的规则匹配装置包括:
获取单元100,用于从业务数据中获取身份识别码;
查找单元200,用于基于身份识别码,在预存储的平衡查找树中进行逐层查找,其中,所述平衡查找树是根据指定的身份识别码生成的,用于查找所述指定的身份识别码对应的业务规则;
规则适配单元300,用于将查找到的身份识别码对应的业务规则确定为业务数据对应的业务规则。
图5是本申请另一实施例的规则匹配装置的结构示意图。如图5所示,在一种实施方式中,上述装置还包括存储单元400,存储单元400用于:
如果指定的身份识别码对应的业务规则发生更新,则对平衡查找树中与指定的身份识别码对应的叶子节点进行更新。
在一种实施方式中,上述装置还包括执行单元500,执行单元500用于:
对业务数据执行对应的业务规则。
在一种实施方式中,平衡查找树中与指定的身份识别码对应的叶子节点用于存储指定的身份识别码对应的业务规则;
平衡查找树中从根节点到叶子节点的路径上的多个节点分别用于存储指定的身份识别码的多个部分;
其中,通过预先设置的分级命名规则对身份识别码进行拆分以获得身份识别码的多个部分。
在一种实施方式中,分级命名规则包括:身份识别码对应的多个级别以及各个级别所占据的位数。
在一种实施方式中,平衡查找树包括红黑树或平衡多路查找树。
本申请实施例各装置中的各单元的功能可以参见上述方法中的对应描述,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的规则匹配方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(Graphical User Interface,GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的规则匹配方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的规则匹配方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的规则匹配方法对应的程序指令/模块(例如,附图4所示的获取单元100、查找单元200、规则适配单元300,附图5所示的存储单元400、执行单元500)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的规则匹配方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据执行规则匹配方法的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至执行规则匹配方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
执行规则匹配方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与执行规则匹配方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(Liquid Crystal Display,LCD)、发光二极管(Light EmittingDiode,LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路(Application Specific Integrated Circuits,ASIC)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(programmable logic device,PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(Cathode Ray Tube,阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本申请实施例中的待处理的视频数据可以来自于不同结构的网页中,并且,选取词性、命名实体和依存关系作为特征组合,利用条件随机场模型从视频的文本数据中提取目标实体属性信息,提高了信息提取的准确性,能够很好地满足用户获取实体信息的实际需求,在一定程度上具有较好的通用性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (14)
1.一种规则匹配方法,其特征在于,包括:
从业务数据中获取身份识别码;
基于所述身份识别码,在预存储的平衡查找树中进行逐层查找,其中,所述平衡查找树是根据指定的身份识别码生成的,用于查找所述指定的身份识别码对应的业务规则;
将查找到的身份识别码对应的业务规则确定为所述业务数据对应的业务规则;
所述平衡查找树中与所述指定的身份识别码对应的叶子节点用于存储所述指定的身份识别码对应的业务规则。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述指定的身份识别码对应的业务规则发生更新,则对所述平衡查找树中与所述指定的身份识别码对应的叶子节点进行更新。
3.根据权利要求1所述的方法,其特征在于,将在所述平衡查找树中查找到的身份识别码对应的业务规则确定为所述业务数据对应的业务规则之后,还包括:
对所述业务数据执行对应的业务规则。
4.根据权利要求1-3中任一项所述的方法,其特征在于,
所述平衡查找树中从根节点到叶子节点的路径上的多个节点分别用于存储所述指定的身份识别码的多个部分;
其中,通过预先设置的分级命名规则对身份识别码进行拆分以获得身份识别码的多个部分。
5.根据权利要求4所述的方法,其特征在于,所述分级命名规则包括:身份识别码对应的多个级别以及各个级别所占据的位数。
6.根据权利要求1-3中任一项所述的方法,其特征在于,所述平衡查找树包括红黑树或平衡多路查找树。
7.一种规则匹配装置,其特征在于,包括:
获取单元,用于从业务数据中获取身份识别码;
查找单元,用于基于所述身份识别码,在预存储的平衡查找树中进行逐层查找,其中,所述平衡查找树是根据指定的身份识别码生成的,用于查找所述指定的身份识别码对应的业务规则;
规则适配单元,用于将查找到的身份识别码对应的业务规则确定为所述业务数据对应的业务规则;
所述平衡查找树中与所述指定的身份识别码对应的叶子节点用于存储所述指定的身份识别码对应的业务规则。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括存储单元,所述存储单元用于:
如果所述指定的身份识别码对应的业务规则发生更新,则对所述平衡查找树中与所述指定的身份识别码对应的叶子节点进行更新。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括执行单元,所述执行单元用于:
对所述业务数据执行对应的业务规则。
10.根据权利要求7-9中任一项所述的装置,其特征在于,
所述平衡查找树中从根节点到叶子节点的路径上的多个节点分别用于存储所述指定的身份识别码的多个部分;
其中,通过预先设置的分级命名规则对身份识别码进行拆分以获得身份识别码的多个部分。
11.根据权利要求10所述的装置,其特征在于,所述分级命名规则包括:身份识别码对应的多个级别以及各个级别所占据的位数。
12.根据权利要求7-9中任一项所述的装置,其特征在于,所述平衡查找树包括红黑树或平衡多路查找树。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010081854.2A CN111274274B (zh) | 2020-02-06 | 2020-02-06 | 规则匹配方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010081854.2A CN111274274B (zh) | 2020-02-06 | 2020-02-06 | 规则匹配方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274274A CN111274274A (zh) | 2020-06-12 |
CN111274274B true CN111274274B (zh) | 2023-08-15 |
Family
ID=71003804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010081854.2A Active CN111274274B (zh) | 2020-02-06 | 2020-02-06 | 规则匹配方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274274B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861382B (zh) * | 2020-06-28 | 2024-04-09 | 微民保险代理有限公司 | 业务资格认证方法、装置、系统、计算机设备和存储介质 |
CN111767462B (zh) * | 2020-06-29 | 2024-04-19 | 北京百度网讯科技有限公司 | 为个体定制个性化规则的方法、装置、设备及存储介质 |
CN111767321B (zh) * | 2020-06-30 | 2024-02-09 | 北京百度网讯科技有限公司 | 节点关系网络的确定方法、装置、电子设备和存储介质 |
CN112988278B (zh) * | 2021-04-12 | 2022-09-06 | 上海米哈游天命科技有限公司 | 资源文件的meta文件修改方法、装置、电子设备及存储介质 |
CN113435990B (zh) * | 2021-06-28 | 2022-09-30 | 平安科技(深圳)有限公司 | 基于规则引擎的凭证生成方法、装置和计算机设备 |
CN114168601B (zh) * | 2022-02-10 | 2022-07-22 | 浙江大学 | 一种面向移动端的数据流处理方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298340B1 (en) * | 1999-05-14 | 2001-10-02 | International Business Machines Corporation | System and method and computer program for filtering using tree structure |
CN104077694A (zh) * | 2013-03-27 | 2014-10-01 | 阿里巴巴集团控股有限公司 | 用户权益信息处理方法及系统 |
CN108628947A (zh) * | 2018-04-02 | 2018-10-09 | 阿里巴巴集团控股有限公司 | 一种业务规则匹配处理方法、装置及处理设备 |
CN109408517A (zh) * | 2018-11-01 | 2019-03-01 | 深信服科技股份有限公司 | 规则的多维度搜索方法、装置、设备及可读存储介质 |
CN109508326A (zh) * | 2018-11-22 | 2019-03-22 | 北京百度网讯科技有限公司 | 用于处理数据的方法、装置和系统 |
CN109741087A (zh) * | 2018-12-11 | 2019-05-10 | 中国联合网络通信集团有限公司 | 电子优惠券的管理方法及装置 |
CN110704453A (zh) * | 2019-10-15 | 2020-01-17 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种数据查询方法、装置、存储介质及电子设备 |
-
2020
- 2020-02-06 CN CN202010081854.2A patent/CN111274274B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298340B1 (en) * | 1999-05-14 | 2001-10-02 | International Business Machines Corporation | System and method and computer program for filtering using tree structure |
CN104077694A (zh) * | 2013-03-27 | 2014-10-01 | 阿里巴巴集团控股有限公司 | 用户权益信息处理方法及系统 |
CN108628947A (zh) * | 2018-04-02 | 2018-10-09 | 阿里巴巴集团控股有限公司 | 一种业务规则匹配处理方法、装置及处理设备 |
CN109408517A (zh) * | 2018-11-01 | 2019-03-01 | 深信服科技股份有限公司 | 规则的多维度搜索方法、装置、设备及可读存储介质 |
CN109508326A (zh) * | 2018-11-22 | 2019-03-22 | 北京百度网讯科技有限公司 | 用于处理数据的方法、装置和系统 |
CN109741087A (zh) * | 2018-12-11 | 2019-05-10 | 中国联合网络通信集团有限公司 | 电子优惠券的管理方法及装置 |
CN110704453A (zh) * | 2019-10-15 | 2020-01-17 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种数据查询方法、装置、存储介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
对基于B-树系列的数据库索引算法的研究;王钰;马新华;;科技信息(第36期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111274274A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111274274B (zh) | 规则匹配方法、装置、电子设备及存储介质 | |
US11216861B2 (en) | Color based social networking recommendations | |
CN112269789B (zh) | 存储数据的方法和装置、以及读取数据的方法和装置 | |
US11704342B2 (en) | Similarity sharding | |
US20180096267A1 (en) | Single model-based behavior predictions in an on-demand environment | |
AU2013395632B2 (en) | Method and system for clustering similar items | |
US20190114342A1 (en) | Entity identifier clustering | |
CN111680221A (zh) | 信息推荐方法、装置、设备及计算机可读存储介质 | |
CN112100524B (zh) | 一种信息推荐的方法、装置、设备以及存储介质 | |
KR101947299B1 (ko) | 검색 질의 재작성 시스템 및 방법 | |
US10417210B2 (en) | Multi-token matching scheme | |
CN103946842A (zh) | 检索装置、检索方法、检索程序和记录介质 | |
US10671626B2 (en) | Identity consolidation in heterogeneous data environment | |
US9652740B2 (en) | Fan identity data integration and unification | |
US9442745B2 (en) | Business-to-consumer extendable base application | |
CN112528067A (zh) | 图数据库的存储方法、读取方法、装置及设备 | |
KR102216855B1 (ko) | 선정된 대상자에게 광고를 제공하는 광고 방법 및 그 시스템 | |
EP3072097A2 (en) | Performing marketplace actions based on social networking tags | |
CN117453980A (zh) | 元数据管理、配置页面生成方法、服务器及存储介质 | |
CN113449003B (zh) | 信息查询的方法、装置、电子设备及介质 | |
KR102256814B1 (ko) | 목적 데이터 선별 방법 및 시스템 | |
KR20020059971A (ko) | 전자 카탈로그를 통한 상품 정보 자동 갱신 방법 및 장치 | |
US11886461B2 (en) | Machine-learnt field-specific standardization | |
US10002358B1 (en) | Automated merchant authority | |
US20200387525A1 (en) | System for Processing Resource Data Using Character Fit Objects |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |