CN113282624B - 规则匹配方法、装置、电子设备及存储介质 - Google Patents

规则匹配方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113282624B
CN113282624B CN202110573508.0A CN202110573508A CN113282624B CN 113282624 B CN113282624 B CN 113282624B CN 202110573508 A CN202110573508 A CN 202110573508A CN 113282624 B CN113282624 B CN 113282624B
Authority
CN
China
Prior art keywords
node
rule
field
layer
mapping
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
Application number
CN202110573508.0A
Other languages
English (en)
Other versions
CN113282624A (zh
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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202110573508.0A priority Critical patent/CN113282624B/zh
Publication of CN113282624A publication Critical patent/CN113282624A/zh
Application granted granted Critical
Publication of CN113282624B publication Critical patent/CN113282624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开关于一种规则匹配方法、装置、电子设备及存储介质,涉及互联网技术领域。本公开至少解决了相关技术中规则匹配所消耗的时间较长的问题。该方法包括:根据待匹配数据记录中各个字段的映射值在预设规则匹配模型中进行搜索,确定目标节点;将目标节点存储的规则确定为待匹配数据记录对应的规则。

Description

规则匹配方法、装置、电子设备及存储介质
技术领域
本公开涉及数据处理技术领域,尤其涉及一种规则匹配方法、装置、电子设备及存储介质。
背景技术
产品开发过程中经常需要进行规则匹配,根据匹配到的规则来执行相关的逻辑,若未匹配到规则就进行跳过处理。示例性的,一组针对订单数据的规则中,可能包括有订单的产品种类、商家地区、用户购买渠道、发货仓库等字段。若某一订单数据可从这一组规则中匹配到相应的规则,即该订单数据的每一字段均与该相应的规则中的字段匹配(或者说相同)。也就是说,每一规则包含有至少一个匹配项(也就是上述字段),一条数据与其对应的规则中的每一字段都相匹配。需要说明的是,规则中的每一字段可以是具体的取值,也可以是取值区间,也可以为空。
相关技术中,通常会获取规则列表中的所有规则,并逐条遍历所有规则,且对于每条规则,均需逐个比较该规则中的所有字段,若当前字段匹配则继续比较下一字段,若当前字段不匹配,则比较下一规则,如图1所示。但是,在该相关技术中,规则列表中的规则数量为n(n为正整数),且每条规则的字段数量为m(m为正整数),该相关技术的规则匹配的复杂度为O(mn)。若规则列表中规则的数量较多,即n的取值较大,则规则匹配所消耗的时间较长。
发明内容
本公开提供一种规则匹配方法、装置、电子设备及存储介质,以至少解决相关技术中规则匹配所消耗的时间较长的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种规则匹配方法,包括:根据待匹配数据记录中各个字段的映射值在预设规则匹配模型中进行搜索,确定目标节点。随后,将目标节点存储的规则确定为待匹配数据记录对应的规则。其中,预设规则匹配模型中包括i+1层节点,i为该待匹配数据记录中字段的总数量,i为正整数。第1层节点为根节点,该根节点存储有所有规则。第n层节点中的任一节点为第n+1层节点中至少一个节点的父节点,第n+1层节点中至少一个节点为第n层节点中的任一节点的子节点。第n+1层节点所存储的规则根据规则的第n个字段的映射值确定,使得每个第n层节点存储的规则的第n个字段的映射值包括每个第n层节点对应的所有子节点存储的规则的第n个字段的映射值。n为大于等于1小于等于i的正整数。这样,通过预设规则匹配模型中各个节点所存储的规则的不同字段对应的映射值,以及待匹配数据记录中各个字段的映射值,在该预设规则匹配模型中进行搜索,确定存储该待匹配数据记录对应的规则的目标节点,进而确定该待匹配数据记录对应的规则的目标节点。在这一过程中,将不同规则存储在不同的节点中,可减少规则匹配的时间,解决规则匹配过程中由于规则过多所造成的匹配时间较长的问题。
在一种可能的实现方式中,根据待匹配数据记录中各个字段的映射值在预设规则模型中进行搜索,确定目标节点,包括:n=1时,根据待匹配数据记录的第1个字段的映射值以及第2层节点存储的规则的映射值,在第2层节点中搜索,确定存储有与待匹配数据记录的第1个字段的映射值匹配的规则的节点为目标子节点,该目标子节点为第2层节点中的一个。n>=2且n<=i时,根据待匹配数据记录的第n个字段的映射值以及第n+1层节点存储的规则的第n个字段的映射值,在存储与待匹配数据记录的前n-1个字段的映射值匹配的规则的第n+1层节点中搜索,确定存储有与待匹配数据记录的前n个字段的映射值匹配的节点为目标子节点,该目标子节点为第n+1层节点中的一个。随后,将n=i时确定的目标子节点确定为目标节点。这样,可以根据待匹配数据记录的每一字段的映射值来逐步确定合适的节点作为目标节点,并将该目标节点中存储的规则确定为该待匹配数据记录对应的规则,从而减少规则匹配的时间,解决规则较多所造成的规则匹配的过程所需时间较长的问题。
在一种可能的实现方式中,第n层节点存储有哈希表。n=1时,该哈希表中存储有所有规则以及所有规则的第1个字段的映射值。n>=2时,哈希表内存储有前n-1个字段的映射值相同或位于同一预设取值范围内的规则,以及第n层节点存储的规则的第n个字段的映射值。通过这一过程,预设规则匹配模型中的节点可通过存储哈希表来维护其与对应的子节点之间的关系,并可直接根据父节点所存储的哈希表中的字段的映射值,来确定相应的子节点以及获取与该字段的映射值相匹配的规则,从而减少规则匹配的时间,提高规则匹配的效率。通过上述过程,预设规则匹配模型中的节点可通过存储哈希表来维护其与对应的子节点之间的关系,并可直接根据父节点所存储的哈希表中的字段的映射值,来确定相应的子节点以及获取与该字段的映射值相匹配的规则,从而减少规则匹配的时间,提高规则匹配的效率。
在一种可能的实现方式中,字段的映射值根据字段的内容以及预设映射关系确定,该预设映射关系为字段的内容与字段的映射值之间的映射关系。通过字段的内容与字段的映射值之间的预设映射关系,可在获取到待匹配数据记录后,根据该预设映射关系和该待匹配数据记录各个字段的内容,迅速确定该待匹配数据记录中各个字段的映射值,从而进一步提高根据该待匹配数据记录和预设规则匹配模型进行规则匹配的效率,解决相关技术中规则匹配所消耗的时间较长的问题。
根据本公开实施例的第二方面,提供一种规则匹配装置,包括处理单元与确定单元:处理单元,被配置为执行根据待匹配数据记录中各个字段的映射值在预设规则匹配模型中进行搜索,确定目标节点。其中,预设规则匹配模型中包括i+1层节点,i为该待匹配数据记录中字段的总数量,i为正整数。第1层节点为根节点,该根节点存储有所有规则。第n层节点中的任一节点为第n+1层节点中至少一个节点的父节点,第n+1层节点中至少一个节点为第n层节点中的任一节点的子节点。第n+1层节点所存储的规则根据规则的第n个字段的映射值确定,使得每个第n层节点存储的规则的第n个字段的映射值包括每个第n层节点对应的所有子节点存储的规则的第n个字段的映射值。n为大于等于1小于等于i的正整数。确定单元,被配置为执行将目标节点存储的规则确定为待匹配数据记录对应的规则。
在一种可能的实现方式中,处理单元,具体被配置为执行:n=1时,根据待匹配数据记录的第1个字段的映射值以及第2层节点存储的规则的映射值,在第2层节点中搜索,确定存储有与待匹配数据记录的第1个字段的映射值匹配的规则的节点为目标子节点,该目标子节点为第2层节点中的一个。n>=2且n<=i时,根据待匹配数据记录的第n个字段的映射值以及第n+1层节点存储的规则的第n个字段的映射值,在存储与待匹配数据记录的前n-1个字段的映射值匹配的规则的第n+1层节点中搜索,确定存储有与待匹配数据记录的前n个字段的映射值匹配的节点为目标子节点,该目标子节点为第n+1层节点中的一个。随后,将n=i时确定的目标子节点确定为目标节点。
在一种可能的实现方式中,第n层节点存储有哈希表。n=1时,该哈希表中存储有所有规则以及所有规则的第1个字段的映射值。n>=2时,哈希表内存储有前n-1个字段的映射值相同或位于同一预设取值范围内的规则,以及第n层节点存储的规则的第n个字段的映射值。
在一种可能的实现方式中,字段的映射值根据字段的内容以及预设映射关系确定,该预设映射关系为字段的内容与字段的映射值之间的映射关系。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述第一方面中任一种可能的实现方式所示的规则匹配方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述第一方面中任一种可能的实现方式所示的规则匹配方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括指令,当所述指令在计算机上运行时,使得计算机执行上述第一方面中任一种可能的实现方式所示的规则匹配方法。
上述提供的任一种规则匹配装置或电子设备或计算机可读存储介质或计算机程序产品用于执行上文所提供的对应的方法,均可通过预设规则匹配模型中各个节点所存储的规则的不同字段对应的映射值,以及待匹配数据记录中各个字段的映射值,在该预设规则匹配模型中进行搜索,确定存储该待匹配数据记录对应的规则的目标节点,进而确定该待匹配数据记录对应的规则的目标节点。在这一过程中,将不同规则存储在不同的节点中,可减少规则匹配的时间,解决规则匹配过程中由于规则过多所造成的匹配时间较长的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种相关技术的示意图;
图2是根据一示例性实施例示出的一种规则匹配方法的流程示意图;
图3是根据一示例性实施例示出的一种预设规则匹配模型的示意图;
图4是根据一示例性实施例示出的一种规则匹配装置的框图;
图5是根据一示例性实施例示出的一种电子设备的一般结构的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
需要说明的是,本公开实施例提供的规则匹配方法可以应用于电子设备或服务器。其中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端等。服务器可以为一台服务器,或者,也可以为由多台服务器组成的服务器集群,本公开对此不做限定。
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
图2是根据一示例性实施例示出的一种规则匹配方法的流程图,如图2所示,该规则匹配方法应用于例如服务器中,该方法包括以下步骤:
S201、根据待匹配数据记录中各个字段的取值在预设规则匹配模型中进行搜索,确定目标节点。
其中,该预设规则匹配模型中包括i+1层节点。每一层节点中包括至少一个节点。i为上述待匹配数据记录中的字段的总数量,i为正整数。
在一种可能的实现方式中,第1层节点为根节点,该根节点存储有所有规则。第n层节点中的任一节点为第n+1层节点中至少一个节点的父节点,该n+1层节点中至少一个节点为第n层节点中的任一节点的子节点。其中,n为大于等于1小于等于i的正整数。
示例性的,第1层节点即节点A为根节点,该根节点内存储有所有规则,例如规则1-规则5,第2层节点中包括节点B和节点C,节点B存储有规则1-规则3,节点C存储有规则4和规则5。其中,第1层节点即节点A为第2层节点即节点B和节点C的父节点,第2层节点即节点B和节点C均为第1层节点即节点A的子节点。
示例性的,第2层节点中包括节点B和节点C,节点B中存储有规则1-规则3,节点C中存储有规则4-规则5,第3层节点中包括节点D、节点E、节点F和节点G,节点D中存储有规则1-规则2,节点E中存储有规则3,节点F中存储有规则4,节点G中存在规则5。其中,第2层节点中的节点B为第3层节点中的节点D和节点E的父节点,第3层节点中的节点D和节点E为第2层节点中的节点B的子节点,第2层节点中的节点C为第3层节点中的节点F和节点G的父节点,第3层节点中的节点F和节点G为第2层节点中节点C的子节点。
示例性的,这i层节点中包括父节点A(第1层节点)、第一子节点B(第2层节点)、第一子节点C(第2层节点)、第二子节点D(第3层节点)以及第二子节点E(第3层节点)。其中,父节点A对应的子节点包括第一子节点B和第一子节点C,第一子节点B对应的子节点包括第二子节点D和第二子节点E。父节点A中存储有规则1-规则5,该父节点A的子节点即第一子节点B中存储有规则1-规则4,该父节点A的另一子节点即第一子节点C中存储有规则5,第一子节点B的子节点即第二子节点D中存储有规则1-规则2,第一子节点C的子节点即第二子节点D中存储有规则3-规则4。
也就是说,对于父节点以及与该父节点对应的子节点来说,该父节点存储的规则为其对应的所有子节点存储的规则的并集。
在一种可能的实现方式中,第n+1层节点所存储的规则是根据规则的第n个字段的映射值确定的,可使得每个第n层节点存储的规则的第n个字段的映射值包括每个第n层节点对应的所有子节点存储的规则的第n个字段的映射值。
具体的,第n+1层节点所存储的规则是根据第n个字段的映射值的预设取值或者取值范围确定的。也就是说,每个第n层节点对应的不同的子节点存储的规则的第n个字段的映射值不同,或位于不同的预设取值范围内。其中,该预设取值范围可为预先设定的,也可以是根据实际应用场景中不同字段的内容来确定的。
示例性的,上述第2层节点中各个节点即节点B和节点C所存储的规则是根据规则的第1个字段的映射值确定的。以第2层节点中不同节点所存储的规则的第1个字段的映射值分别为1和2为例,第1层节点存储的所有规则中,规则1-规则3的第1个字段的映射值均为1,规则4和规则5的第1个字段的映射值均为2,则根据规则的第1个字段的映射值可以确定节点A在第2层节点中的2个子节点即节点B和节点C。节点B中存储规则1-规则3,节点C中存储规则4和规则5,或者,节点C中存储有规则1-规则3,节点B存储有规则4和规则5。综上,第1层节点即节点A所存储的规则的第1个字段的映射值包括节点A的子节点即节点B和节点C存储的规则的第1个字段的映射值。
示例性的,上述第2层节点中各个节点即节点B和节点C所存储的规则是根据规则的第1个字段的映射值确定的。以第2层节点中不同节点所存储的规则的第1个字段的映射值对应的预设取值范围分别为[1,1000]和[1001,10000]为例,第1层节点存储的所有规则中,规则1-规则5的第1个字段的映射值分别为上述1、10、100、1000和10000,则根据规则的第1个字段的映射值可以确定节点A在第2层节点中的2个子节点即节点B和节点C。节点B中存储有规则1-规则4,节点C中存储有规则5,或者,节点C中存储有规则1-规则4,节点B中存储有规则5。综上,第1层节点即节点A所存储的规则的第1个字段的映射值包括节点A的子节点即节点B和节点C存储的规则的第1个字段的映射值。
在一种可能的实现方式中,n=1时,第1层节点中存储有所有规则,以及所有规则的第1个字段的映射值。n>=2时,第n层节点中存储有前n-1个字段的映射值相同或位于同一预设取值范围内的规则,以及该第n层节点所存储的规则的第n个字段的映射值。也就是说,第n层节点存储有用于确定其对应的第n+1层的子节点的规则的第n个字段的映射值,以及该第n层节点对应的所有第n+1层的子节点存储的所有规则。
示例性的,第1层节点即节点A为根节点,该节点A中存储有所有规则,例如规则1-规则3,且该节点A中还存储有规则1-规则3的第1个字段的映射值,例如,该节点A中还存储有规则1和规则2的第1个字段的映射值1以及规则3的第1个字段的映射值3。第2层的节点包括节点B和节点C,其中,节点B和节点C为节点A的子节点,节点B存储有第1个字段的映射值相同(即1)的规则1和规则2,节点C存储有第1个字段的映射值为3的规则3。节点B还存储有规则1和规则2的第2个字段的映射值,节点C还存储有规则3的第2个字段的映射值。当然,规则1-规则3也可能只有1个字段,此时,规则1-规则3的第2个字段的映射值均为空,或者该节点B仅存储有第1个字段的映射值为1的规则1和规则2,该节点C只存储有第1个字段的映射值为3的规则3。
示例性的,第1层节点即节点A为根节点,该节点A中存储有所有规则,例如规则1-规则3,且该节点A中还存储有规则1和规则2的映射值,例如,节点A中还存储有规则1的第1个字段的映射值1、规则2的第2个字段的映射值300以及规则3的第1个字段的映射值800。第2层的节点包括节点B和节点C,其中,节点B和节点C为节点A的子节点。节点B中存储第1个字段的映射值位于预设取值范围[0,500]内的规则1和规则2,以及规则1和规则2的第2个字段的映射值,节点C中存储有第1个字段的映射值位于预设取值范围(500,1000]内的规则3,以及规则3的第2个字段的映射值。当然,规则1-规则3可能只有1个字段,此时,规则1-规则3的第2个字段的映射值均为空,节点B仅存储有第1个字段的映射值分别为1和300的规则1和规则2,节点C仅存储有第1个字段的映射值为800的规则3。
需要说明的是,通过上述过程,可根据第n层节点本身所存储的规则,以及这些规则的第n个字段的映射值,来确定该第n+1层节点中每一节点所存储的规则,实现预设规则匹配模型中的各层节点的划分,进而根据待匹配数据记录的各个字段的映射值,在该预设规则匹配模型的节点存储的与不同字段的映射值相匹配的规则中进行匹配,减少现有技术中对待匹配数据记录进行规则匹配时所消耗的时间较长的问题。
在一种可能的实现方式中,上述预设规则匹配模型的节点中每个节点存储有用于表示其与对应的子节点之间的关联关系的哈希表。第n层节点存储有哈希表。n=1时,哈希表中存储有所有规则以及所有规则的第1个字段的映射值;n>=2时,哈希表内存储有前n-1个字段的映射值相同或位于同一预设取值范围内的规则,以及该第n层节点存储的规则的第n个字段的映射值。也就是说,第n层节点以哈希表的形式来存储上述该第n层节点存储的规则和规则的相应字段的映射值。其中,父节点存储的哈希表中存储有用于确定其子节点的规则的字段的映射值,以及该父节点对应的所有子节点中存储的规则。
具体的,哈希表中包括key值以及value等。其中,第n层节点所存储的哈希表中的key值包括该第n层节点存储的规则的第n个字段的映射值,value包括该第n层节点对应的所有子节点中存储的规则。
示例性的,上述预设规则匹配模型的节点中包括第1层节点即节点A,以及节点A对应的子节点即第2层节点中的节点B和节点C。用于确定节点B存储的规则的第1个字段的映射值为12,用于确定节点C存储的规则的第1个字段的映射值为23,节点B上存储有规则1和规则2,节点C上存储有规则3。也就是说,规则1和规则2的第1个字段的映射值均为12。此时,该第1层节点即节点A上存储有哈希表,该哈希表中存储有key值包括第2层的节点B和节点C存储的规则的第1个字段的映射值12和23,且该哈希表中存储有value包括节点A对应的子节点(即节点B和节点C)所存储的所有规则,即规则1、规则2和规则3。
示例性的,上述预设规则匹配模型的节点中包括第1层节点即节点A、第2层节点即节点B和节点C以及第3层节点即节点D和节点E。其中,节点B和节点C为节点A的子节点,节点D和节点E为节点B的子节点,也就是说,节点A为节点B和节点C的父节点,节点B为节点D和节点E的父节点。用于确定节点B的规则的第1个字段的映射值的预设取值范围为[1,100],用于确定节点C的规则的第1个字段的映射值的预设取值范围为(100,1000],用于确定节点D的规则的第2个字段的映射值的预设取值范围为[0,1000],用于确定节点E的规则的第2个字段的映射值的取值范围为(1000,10000]。其中,用于确定节点B和节点C的规则的第1个字段位于用于确定节点D和节点E的第2个字段之前。节点A存储有规则1、规则2和规则3,节点B存储有规则1和规则2,节点C存储有规则3,节点D存储有规则1,节点E存储有规则E。也就是说,规则1-规则2的第1个字段的映射值位于预设取值范围[1,100]内,规则3的第1个字段的映射值位于预设取值范围(100,1000]内,规则1的第2个字段的映射值位于预设取值范围[0,1000]内,规则2的第2个字段的映射值位于预设取值范围(1000,10000]内。此时,节点A上存储有哈希表,该哈希表中存储有key值包括节点B和节点C存储的规则(即规则1-规则3)的第1个字段的映射值,且该哈希表中存储有value包括节点A对应的子节点(即节点B和节点C)所存储的所有规则,即规则1、规则2和规则3。节点B上存储有哈希表,该哈希表中存储有key值包括节点D和节点E存储的规则(即规则1和规则2)的第2个字段的映射值,且该哈希表中存储有value包括节点B对应的子节点(即节点D和节点E)所存储的所有规则,即规则1和规则2。
需要说明的是,通过上述过程,预设规则匹配模型中的节点可通过存储哈希表来维护其与对应的子节点之间的关系,并可直接根据父节点所存储的哈希表中的字段的映射值,来确定相应的子节点以及获取与该字段的映射值相匹配的规则,从而减少规则匹配的时间,提高规则匹配的效率。
在一种可能的实现方式中,字段的映射值是根据该字段的内容以及该字段的内容与该字段的映射值之间的预设映射关系确定。其中,字段的内容与该字段的映射值之间的预设对应关系是预先确定的。需要说明的是,不同的字段所对应的字段的内容与该字段的映射值之间的预设映射关系可能是不相同的。该预设映射关系可为预先设定的,也可以是根据实际应用场景确定的。
示例性的,预设规则匹配模型的根节点存储有所有的规则,例如规则1-规则5。规则1和规则5均包含2个字段。其中,规则1-规则5的第1个字段对应的预设映射关系为映射关系1,规则1-规则5的第2个字段对应的预设映射关系为映射关系2。根据映射关系1以及根节点所存储的规则1-规则5的第1个字段的内容,可以确定规则1-规则5的第1个字段的映射值,进而根据规则1-规则5的第1个字段的映射值确定第2层的节点。随后,对于第2层的每一节点存储的规则(即规则1-规则5)的第2个字段的内容以及映射关系2,确定每一节点存储的规则的第2字段的映射值,进而根据规则1-规则5的第2个字段的映射值,针对第2层的每一节点确定其对应的子节点。
需要说明的是,若预设映射关系,或划分预设规则匹配模型中各个节点所存储的规则的各个字段的映射值发生变化,则该预设规则匹配模型中各个节点所存储的哈希表中的内容可能会发生变化。
另外,通过上述字段的内容与字段的映射值之间的预设映射关系,可在获取到待匹配数据记录后,根据该预设映射关系和该待匹配数据记录各个字段的内容,迅速确定该待匹配数据记录中各个字段的映射值,从而进一步提高根据该待匹配数据记录和预设规则匹配模型进行规则匹配的效率,解决相关技术中规则匹配所消耗的时间较长的问题。
示例性的,图3为一种可能的预设规则匹配模型的示意图。以该预设规则匹配模型中所包含的所有规则包括规则1-规则4。该预设规则匹配模型中包括第1层节点即根节点,第2层节点包括第一子节点1和第一子节点2,第一子节点1存储的规则为规则1和规则2,该规则1和规则2的第1个字段的映射值为V11,第一子节点2存储的规则为规则3和规则4,该规则3和规则4的第1个字段的映射值为V12。也就是说,根节点中以哈希表形式存储规则1-规则4以及规则1-规则4的第1个字段的映射值V11和V12。该第一子节点1对应的子节点包括第3层节点中的第二子节点1和第二子节点2,第一子节点2对应的子节点包括第3层节点中的第二子节点3和第二子节点4。第二子节点1存储有规则1,规则1的第2字段的映射值为V21,第二子节点2存储有规则2,规则2的第2字段的映射值为V22,第二子节点3存储有规则3,规则3的第2字段的映射值为V23,第二子节点4存储有规则4,规则4的第2字段的映射值为V24。也就是说,第一字节点1中以哈希表形式存储规则1-规则2以及规则1-规则2的第2个字段的映射值V21和V22,第一字节点2中以哈希表形式存储规则3-规则4以及规则3-规则4的第2个字段的映射值V23和V24。
在一种可能的实现方式中,字段的映射值可能为空。
在一种可能的实现方式中,字段的映射值可能为某一取值区间,即上述预设取值范围。一般的,该字段为含有大量数值的字段。
示例性的,对于根节点存储的规则1-规则5,根据规则1-规则5的第1字段中含有大量数值,规则1的第1字段的映射值为[0,1000],规则2的第1字段的映射值为[0,1000],规则3的第1字段的映射值为[2000,8000],规则4的第1字段的映射值为[9000,10000],规则5的第1字段的映射值为[11000,20000]。进而根据第1字段的映射值,确定根节点对应的子节点,例如第1字段的映射值为[0,1000],[2000,8000],[9000,10000],[11000,20000]的规则位于不同的子节点。
在一种可能的实现方式中,根据n的取值的不同,对n+1层中的节点进行搜索,以确定目标子节点,并将n=i时确定的目标子节点确定为目标节点。具体的,n=1时,根据待匹配数据记录的第1个字段的映射值以及第2层节点存储的规则的第1个字段的映射值,在第2层节点中进行搜索,将该第2层节点中存储有与待匹配数据记录的第1个字段的映射值匹配的规则的节点,确定为目标子节点。n>=2且n<=i时,根据待匹配数据记录的第n个字段的映射值以及第n+1层节点存储的规则的第n个字段的映射值,在存储与待匹配数据记录的前n-1个字段的映射值匹配的规则的第n+1层节点中进行搜索,确定该第n+1层节点中存储有与待匹配数据记录的前n个字段的映射值匹配的规则的节点为目标子节点。
示例性的,以待匹配数据记录的字段总数量为1,且该待匹配数据记录的第1个字段的映射值为1为例,预设规则匹配模型中包括2层节点,第1层节点为根节点A,第2层节点包括节点B和节点C,根节点A中存储有规则1和规则2,节点B中存储有规则1,规则1的第1个字段的映射值为1,节点C中存储有规则2,规则2的第1个字段的映射值为2。其中,规则1的第1个字段的映射值与待匹配数据记录的第1个字段的映射值相同,也就是说,规则1与待匹配数据记录相匹配。因此,对第2层节点中节点B和节点C进行搜索,可以确定存储规则1的节点B为目标子节点。由于i=n=1,将该节点B确定为目标节点。
示例性的,以待匹配数据记录的字段总数量为2,且该待匹配数据记录的第1个字段的映射值为1,该待匹配数据记录的第2个字段的映射值为2为例,预设规则匹配模型中包括3层节点,第1层节点为根节点A,第2层节点包括节点B和节点C,第3层节点包括节点D和节点E。节点A中存储有规则1-规则3,节点B存储有规则1和规则2,节点C存储有规则3,节点D存储有规则1,节点E存储有规则2。规则1-规则2的第1个字段的映射值均为1,规则3的第1个字段的取值为3,规则1的第2个字段的映射值为2,规则2的第2个字段的映射值为4,规则3的第2个字段的映射值为4。其中,规则1和规则2的第1个字段的映射值与待匹配数据记录的第1个字段的映射值均为1,也就是说,规则1和规则2的第1个字段的映射值与待匹配数据记录的第1个字段的映射值相匹配,节点B和节点C为存储有与待匹配数据记录的前1个字段的映射值匹配的规则的节点。因此,n=1时,确定节点B和节点C为目标子节点。随后,对第3层节点中的节点B对应的子节点即节点D和节点E进行搜索,节点D中的规则1的第2个字段的映射值与待匹配数据记录的第2个字段的映射值均为2,也就是说,规则1的第2个字段的映射值与待匹配数据记录的第2个字段的映射值相匹配,将节点D确定为目标子节点。此时,n=i=2,因此,将该目标子节点即节点D确定为目标节点。
需要说明的是,根据待匹配数据记录的各个字段的映射值,来对预设规则匹配模型中预先确定的目标子节点对应的子节点进行搜索,可确定存储有与当前字段之前的所有字段均匹配的规则的节点,从而通过递归的方式来确定存储有该待匹配数据记录对应的规则的目标节点,在规则数量较多的情况下,减少规则匹配所需的时间,提高规则匹配的效率。
S202、将目标节点存储的规则确定为待匹配数据记录对应的规则。
通过上述过程,可利用预设规则匹配模型中各个节点所存储的规则,逐步根据待匹配数据的每一字段的映射值以及节点所存储的规则的相应字段的映射值,来确定目标节点,进而将目标节点存储的规则即与待匹配数据记录的各个字段均匹配的规则确定为该待匹配数据记录对应的规则,从而减少规则匹配的时间,解决因规则较多造成的规则匹配的时间较长的问题。
另外,也可通过规则引擎来实现规则匹配,但相对比来说,通过规则引擎来实现规则匹配较为复杂,且成本较高,而本公开的技术方案较为轻量级,实现规则匹配的过程较为简单,成本较低,且可以较好的提高规则匹配效率,减少规则匹配所需的时间。
图4是根据一示例性实施例示出的一种规则匹配装置的框图。参照图4,该装置包括处理单元401和确定单元402。
该处理单元401被配置为执行根据待匹配数据记录中各个字段的映射值在预设规则匹配模型中进行搜索,确定目标节点。其中,预设规则匹配模型中包括i+1层节点,i为该待匹配数据记录中字段的总数量,i为正整数。第1层节点为根节点,该根节点存储有所有规则。第n层节点中的任一节点为第n+1层节点中至少一个节点的父节点,第n+1层节点中至少一个节点为第n层节点中的任一节点的子节点。第n+1层节点所存储的规则根据规则的第n个字段的映射值确定,使得每个第n层节点存储的规则的第n个字段的映射值包括每个第n层节点对应的所有子节点存储的规则的第n个字段的映射值。n为大于等于1小于等于i的正整数。
确定单元402,被配置为执行将目标节点存储的规则确定为待匹配数据记录对应的规则。
该处理单元401,具体被配置为执行n=1时,根据待匹配数据记录的第1个字段的映射值以及第2层节点存储的规则的映射值,在第2层节点中搜索,确定存储有与待匹配数据记录的第1个字段的映射值匹配的规则的节点为目标子节点,该目标子节点为第2层节点中的一个。n>=2且n<=i时,根据待匹配数据记录的第n个字段的映射值以及第n+1层节点存储的规则的第n个字段的映射值,在存储与待匹配数据记录的前n-1个字段的映射值匹配的规则的第n+1层节点中搜索,确定存储有与待匹配数据记录的前n个字段的映射值匹配的节点为目标子节点,该目标子节点为第n+1层节点中的一个。随后,将n=i时确定的目标子节点确定为目标节点。
在一种可能的实现方式中,第n层节点存储有哈希表。n=1时,该哈希表中存储有所有规则以及所有规则的第1个字段的映射值。n>=2时,哈希表内存储有前n-1个字段的映射值相同或位于同一预设取值范围内的规则,以及第n层节点存储的规则的第n个字段的映射值。
在一种可能的实现方式中,字段的映射值根据字段的内容以及预设映射关系确定,该预设映射关系为字段的内容与字段的映射值之间的映射关系。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种电子设备的框图。该电子设备可以包括至少一个处理器501,通信总线502,存储器503以及至少一个通信接口504。
处理器501可以是一个处理器(central processing units,CPU),微处理单元,特定用途集成电路(application specific integrated circuit,ASIC),或一个或多个用于控制本公开方案程序执行的集成电路。
通信总线502可包括一通路,在上述组件之间传送信息。
通信接口504,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如服务器、以太网,无线接入网(radio access network,RAN),无线局域网(wireless localarea networks,WLAN)等。
存储器503可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
其中,存储器503用于存储执行本公开方案的应用程序代码,并由处理器501来控制执行。处理器501用于执行存储器503中存储的应用程序代码,从而实现本公开方法中的功能。
在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,例如图5中的CPU0和CPU1。
在具体实现中,作为一种实施例,该电子设备可以包括多个处理器,例如图5中的处理器501和处理器505。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,该电子设备还可以包括输入设备506和输出设备507。输入设备506和处理器501通信,可以以多种方式接受用户的输入。例如,输入设备506是鼠标、键盘、触摸屏设备或传感设备等。输出设备507和处理器501通信,可以以多种方式来显示信息。例如,输出设备507可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备等。
本领域技术人员可以理解,图5中示出的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器503,上述指令可由电子设备的处理器501执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器RAM、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器504,上述指令可由电子设备的处理器501或处理器505执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机设备执行上述所示实施例提供的规则匹配方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (9)

1.一种规则匹配方法,其特征在于,包括:
根据待匹配数据记录中各个字段的映射值在预设规则匹配模型中进行搜索,确定目标节点;所述预设规则匹配模型中包括i+1层节点,所述i为所述待匹配数据记录中字段的总数量,所述i为正整数;第1层节点为根节点,所述根节点存储有所有规则;第n层节点中的任一节点为第n+1层节点中至少一个节点的父节点,所述第n+1层节点中至少一个节点为所述第n层节点中的任一节点的子节点;所述第n+1层节点所存储的规则根据规则的第n个字段的映射值确定,使得所述每个第n层节点存储的规则的第n个字段的映射值包括所述每个第n层节点对应的所有子节点存储的规则的第n个字段的映射值;所述n为大于等于1小于等于i的正整数;
所述第n层节点存储有哈希表;所述n=1时,所述哈希表中存储有所述所有规则以及所述所有规则的第1个字段的映射值;所述n>=2时,所述哈希表内存储有前n-1个字段的映射值相同或位于同一预设取值范围内的规则,以及所述第n层节点存储的规则的第n个字段的映射值;
将所述目标节点存储的规则确定为所述待匹配数据记录对应的规则。
2.根据权利要求1所述的规则匹配方法,其特征在于,所述根据待匹配数据记录中各个字段的映射值在预设规则匹配模型中进行搜索,确定目标节点,包括:
n=1时,根据待匹配数据记录的第1个字段的映射值以及第2层节点存储的规则的第1个字段的映射值,在第2层节点中搜索,确定存储有与所述待匹配数据记录的第1个字段的映射值匹配的规则的节点为目标子节点,所述目标子节点为所述第2层节点中的一个;
n>=2并且n<=i时,根据待匹配数据记录的第n个字段的映射值以及第n+1层节点存储的规则的第n个字段的映射值,在存储与所述待匹配数据记录的前n-1个字段的映射值匹配的规则的第n+1层节点中搜索,确定存储有与所述待匹配数据记录的前n个字段的映射值匹配的规则的节点为目标子节点,所述目标子节点为所述第n+1层节点中的一个;
将n=i时确定的目标子节点确定为目标节点。
3.根据权利要求1或2所述的规则匹配方法,其特征在于,所述字段的映射值根据所述字段的内容以及预设映射关系确定,所述预设映射关系为所述字段的内容与所述字段的映射值之间的映射关系。
4.一种规则匹配装置,其特征在于,包括处理单元以及确定单元:
所述处理单元,被配置为执行根据待匹配数据记录中各个字段的映射值在预设规则匹配模型中进行搜索,确定目标节点;所述预设规则匹配模型中包括i+1层节点,所述i为所述待匹配数据记录中字段的总数量,所述i为正整数;第1层节点为根节点,所述根节点存储有所有规则;第n层节点中的任一节点为第n+1层节点中至少一个节点的父节点,所述第n+1层节点中至少一个节点为所述第n层节点中的任一节点的子节点;所述第n+1层节点所存储的规则根据规则的第n个字段的映射值确定,使得所述每个第n层节点存储的规则的第n个字段的映射值包括所述每个第n层节点对应的所有子节点存储的规则的第n个字段的映射值;所述n为大于等于1小于等于i的正整数;
第n层节点存储有哈希表;所述n=1时,所述哈希表中存储有所述所有规则以及所述所有规则的第1个字段的映射值;所述n>=2时,所述哈希表内存储有前n-1个字段的映射值相同或位于同一预设取值范围内的规则,以及所述第n层节点存储的规则的第n个字段的映射值;
所述确定单元,被配置为执行将所述目标节点存储的规则确定为所述待匹配数据记录对应的规则。
5.根据权利要求4所述的规则匹配装置,其特征在于,所述处理单元,具体被配置为执行:
n=1时,根据待匹配数据记录的第1个字段的映射值以及第2层节点存储的规则的第1个字段的映射值,在第2层节点中搜索,确定存储有与所述待匹配数据记录的第1个字段的映射值匹配的规则的节点为目标子节点,所述目标子节点为所述第2层节点中的一个;
n>=2并且n<=i时,根据待匹配数据记录的第n个字段的映射值以及第n+1层节点存储的规则的第n个字段的映射值,在存储与所述待匹配数据记录的前n-1个字段的映射值匹配的规则的第n+1层节点中搜索,确定存储有与所述待匹配数据记录的前n个字段的映射值匹配的规则的节点为目标子节点,所述目标子节点为所述第n+1层节点中的一个;
将n=i时确定的目标子节点确定为目标节点。
6.根据权利要求4或5所述的规则匹配装置,其特征在于,所述字段的映射值根据所述字段的内容以及预设映射关系确定,所述预设映射关系为所述字段的内容与所述字段的映射值之间的映射关系。
7.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至3中任一项所述的规则匹配方法。
8.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至3中任一项所述的规则匹配方法。
9.一种计算机程序产品,包括计算机指令,其特征在于,所述指令被处理器执行时实现权利要求1-3中任一项所述的规则匹配方法。
CN202110573508.0A 2021-05-25 2021-05-25 规则匹配方法、装置、电子设备及存储介质 Active CN113282624B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110573508.0A CN113282624B (zh) 2021-05-25 2021-05-25 规则匹配方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110573508.0A CN113282624B (zh) 2021-05-25 2021-05-25 规则匹配方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113282624A CN113282624A (zh) 2021-08-20
CN113282624B true CN113282624B (zh) 2024-05-14

Family

ID=77281506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110573508.0A Active CN113282624B (zh) 2021-05-25 2021-05-25 规则匹配方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113282624B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102148746A (zh) * 2010-02-05 2011-08-10 中兴通讯股份有限公司 一种报文分类方法和系统
CN103226615A (zh) * 2013-05-14 2013-07-31 中国人民解放军信息工程大学 一种spd访问方法
WO2013168053A1 (en) * 2012-05-08 2013-11-14 Telefonaktiebolaget L M Ericsson (Publ) A method and apparatus for packet classification
WO2018090253A1 (zh) * 2016-11-16 2018-05-24 深圳达闼科技控股有限公司 消息匹配方法、消息匹配装置及计算机程序产品、电子设备
CN110347564A (zh) * 2019-05-24 2019-10-18 平安普惠企业管理有限公司 数据生成方法及装置、电子设备、存储介质
CN112364059A (zh) * 2020-11-10 2021-02-12 平安普惠企业管理有限公司 多规则场景下关联匹配方法、装置、设备和存储介质
CN112433774A (zh) * 2019-08-07 2021-03-02 中移信息技术有限公司 业务信息匹配方法、装置、设备及存储介质
CN112800095A (zh) * 2021-04-13 2021-05-14 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102148746A (zh) * 2010-02-05 2011-08-10 中兴通讯股份有限公司 一种报文分类方法和系统
WO2013168053A1 (en) * 2012-05-08 2013-11-14 Telefonaktiebolaget L M Ericsson (Publ) A method and apparatus for packet classification
CN103226615A (zh) * 2013-05-14 2013-07-31 中国人民解放军信息工程大学 一种spd访问方法
WO2018090253A1 (zh) * 2016-11-16 2018-05-24 深圳达闼科技控股有限公司 消息匹配方法、消息匹配装置及计算机程序产品、电子设备
CN110347564A (zh) * 2019-05-24 2019-10-18 平安普惠企业管理有限公司 数据生成方法及装置、电子设备、存储介质
CN112433774A (zh) * 2019-08-07 2021-03-02 中移信息技术有限公司 业务信息匹配方法、装置、设备及存储介质
CN112364059A (zh) * 2020-11-10 2021-02-12 平安普惠企业管理有限公司 多规则场景下关联匹配方法、装置、设备和存储介质
CN112800095A (zh) * 2021-04-13 2021-05-14 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113282624A (zh) 2021-08-20

Similar Documents

Publication Publication Date Title
CN106557486A (zh) 一种数据的存储方法和装置
CN108959510B (zh) 一种分布式数据库的分区级连接方法和装置
WO2016134580A1 (zh) 一种数据查询方法及装置
CN109359141B (zh) 一种可视化报表数据展示方法及装置
US20150120697A1 (en) System and method for analysis of a database proxy
CN107451204B (zh) 一种数据查询方法、装置及设备
CN111784468A (zh) 一种账户关联方法、装置及电子设备
CN110874365B (zh) 一种信息查询方法及其相关设备
CN103809915B (zh) 一种磁盘文件的读写方法和装置
CN108470043A (zh) 一种业务结果的获取方法及装置
CN113282624B (zh) 规则匹配方法、装置、电子设备及存储介质
CN110019538B (zh) 一种数据表切换方法及装置
CN109582476B (zh) 数据处理方法、装置及系统
CN116842012A (zh) 一种Redis集群的分片存储方法、装置、设备及存储介质
US11216432B2 (en) Index data structures and graphical user interface
CN107562533B (zh) 一种数据加载处理方法及装置
US9230022B1 (en) Customizable result sets for application program interfaces
CN113792170B (zh) 图数据划分方法、装置和计算机设备
CN115328917A (zh) 一种查询方法、装置、设备及存储介质
CN115795187A (zh) 资源访问方法、装置及设备
CN114298585A (zh) 一种面向采购场景的物料采购配额分配方法及装置
CN115033551A (zh) 一种数据库迁移方法、装置、电子设备及存储介质
US8554757B2 (en) Determining a score for a product based on a location of the product
CN104572951A (zh) 一种能力标签的确定方法及装置
CN117609303A (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
GR01 Patent grant
GR01 Patent grant