规则的多维度搜索方法、装置、设备及可读存储介质制造方法及图纸

技术编号:20484750 阅读:36 留言:0更新日期:2019-03-02 18:55
本发明专利技术公开了一种规则的多维度搜索方法,包括:创建由所有规则组成的规则数组;以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建规则数组的索引结构,并使搜索结构与索引结构进行关联;在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;基于搜索结构中树节点或数组项与索引结构的关联关系,分别确定与待匹配数据的各数据项相匹配的规则。本发明专利技术还公开了一种规则的多维度搜索装置、设备及计算机可读存储介质。本发明专利技术能够在避免搜索性能大幅下降的前提下,通过一次搜索即可从海量规则中快速得出匹配的规则。

【技术实现步骤摘要】
规则的多维度搜索方法、装置、设备及可读存储介质
本专利技术涉及数据处理
,尤其涉及一种规则的多维度搜索方法、装置、设备及计算机可读存储介质。
技术介绍
在数据处理
,通常存在需要通过查找相应的匹配规则来处理数据,比如报文需要匹配相应的路由规则才能进行转发,如果待匹配数据存在多个数据项,则需要分别进行多次匹配,也即无法通过一次查找即可得到与所有数据项匹配的所有规则。此外,现有的规则匹配算法通常只适用于少量规则,若是对于上万的规则匹配,则性能会随着规则的增多而直线下降。
技术实现思路
本专利技术的主要目的在于提供一种规则的多维度搜索方法、装置、设备及计算机可读存储介质,旨在解决现有规则匹配无法从海量规则中快速得出匹配结果的技术问题。为实现上述目的,本专利技术提供一种规则的多维度搜索方法,所述规则的多维度搜索方法包括:创建由所有规则组成的规则数组;以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建所述规则数组的索引结构,并使所述搜索结构与所述索引结构进行关联,其中,所述搜索结构为树结构或数组结构;在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则。可选地,所述规则数组的索引结构为Bitmap结构,所述Bitmap结构的每一比特位对应所述规则数组的每一索引号,所述规则数组的一个索引号对应一条规则。可选地,所述使所述搜索结构与所述索引结构进行关联包括:若所述搜索结构为树结构,则基于所有规则同一匹配项数值之间的父子关系,构建父子关系树,并使所述父子关系树的每一树节点与一Bitmap结构关联,其中,将Bitmap结构中与树节点数值匹配的规则所对应的比特位置1,其他比特位置0,以及将父树节点关联的Bitmap结构添加到子树节点关联的Bitmap结构中;将所述父子关系树的每一树节点与所述搜索结构的每一树节点进行关联。可选地,所述使所述搜索结构与所述索引结构进行关联包括:若所述搜索结构为数组结构,则使数组结构的每一数组项与一Bitmap结构关联,其中,将Bitmap结构中与数组项数值匹配的规则所对应的比特位置1,其他比特位置0。可选地,所述基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则包括:基于所述搜索结构中所述树节点或数组项对应的Bitmap结构,分别确定各Bitmap结构中置1的比特位所对应的规则为与所述待匹配数据的各数据项相匹配的规则。可选地,在所述基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则的步骤之后,还包括:将与所述待匹配数据的各数据项相匹配的树节点或数组项对应的Bitmap结构进行与运算,并将与运算后的Bitmap结构中所有置1的比特位所对应的规则,确定为与所述待匹配数据的所有数据项相匹配的规则;若进行与运算后的Bitmap结构中存在多个置1的比特位,则将该Bitmap结构中优先级最高且置1的比特位对应的规则作为最终匹配的规则。进一步地,为实现上述目的,本专利技术还提供一种规则的多维度搜索装置,所述规则的多维度搜索装置包括:创建模块,用于创建由所有规则组成的规则数组;构建模块,用于以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建所述规则数组的索引结构,并使所述搜索结构与所述索引结构进行关联,其中,所述搜索结构为树结构或数组结构;搜索模块,用于在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;规则确定模块,用于基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则。可选地,所述规则数组的索引结构为Bitmap结构,所述Bitmap结构的每一比特位对应所述规则数组的每一索引号,所述规则数组的一个索引号对应一条规则。可选地,所述构建模块还用于:若所述搜索结构为树结构,则基于所有规则同一匹配项数值之间的父子关系,构建父子关系树,并使所述父子关系树的每一树节点与一Bitmap结构关联,其中,将Bitmap结构中与树节点数值匹配的规则所对应的比特位置1,其他比特位置0,以及将父树节点关联的Bitmap结构添加到子树节点关联的Bitmap结构中;将所述父子关系树的每一树节点与所述搜索结构的每一树节点进行关联;若所述搜索结构为数组结构,则使数组结构的每一数组项与一Bitmap结构关联,其中,将Bitmap结构中与数组项数值匹配的规则所对应的比特位置1,其他比特位置0。可选地,所述规则确定模块还用于:基于所述搜索结构中所述树节点或数组项对应的Bitmap结构,分别确定各Bitmap结构中置1的比特位所对应的规则为与所述待匹配数据的各数据项相匹配的规则。可选地,所述规则确定模块还用于:将与所述待匹配数据的各数据项相匹配的树节点或数组项对应的Bitmap结构进行与运算,并将与运算后的Bitmap结构中所有置1的比特位所对应的规则,确定为与所述待匹配数据的所有数据项相匹配的规则;若进行与运算后的Bitmap结构中存在多个置1的比特位,则将该Bitmap结构中优先级最高且置1的比特位对应的规则作为最终匹配的规则。进一步地,为实现上述目的,本专利技术还提供一种规则的多维度搜索设备,所述规则的多维度搜索设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的规则的多维度搜索程序,所述规则的多维度搜索程序被所述处理器执行时实现如上述任一项所述的规则的多维度搜索方法的步骤。进一步地,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有规则的多维度搜索程序,所述规则的多维度搜索程序被处理器执行时实现如上述任一项所述的规则的多维度搜索方法的步骤。本专利技术先以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建由所有规则组成的规则数组的索引结构,并使搜索结构与索引结构进行关联;然后在搜索每一个搜索维度对应的搜索结构,分别获得各搜索结构中与待匹配数据的各数据项相匹配的树节点或数组项;最后再基于搜索结构中树节点或数组项与索引结构的关联关系,分别确定与待匹配数据的各数据项相匹配的规则。本专利技术将海量规则匹配转换为对树型或数组型的搜索结构进行搜索,多个搜索维度可以同时进行,进而能够一次搜索维度即可以从海量的规则中得出最优结果,并且随着规则的数量增加,查找性能下降幅度小。附图说明图1为本专利技术多维度搜索设备实施例方案涉及的设备硬件运行环境的结构示意图;图2为本专利技术规则的多维度搜索方法一实施例的流程示意图;图3为本专利技术规则的多维度搜索装置一实施例的功能模块示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。本专利技术提供一种规则的多维度搜索设备。参照图1,图1为本专利技术多维度搜索设备实施例方案涉及的设备硬件运行本文档来自技高网...

【技术保护点】
1.一种规则的多维度搜索方法,其特征在于,所述规则的多维度搜索方法包括:创建由所有规则组成的规则数组;以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建所述规则数组的索引结构,并使所述搜索结构与所述索引结构进行关联,其中,所述搜索结构为树结构或数组结构;在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则。

【技术特征摘要】
1.一种规则的多维度搜索方法,其特征在于,所述规则的多维度搜索方法包括:创建由所有规则组成的规则数组;以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建所述规则数组的索引结构,并使所述搜索结构与所述索引结构进行关联,其中,所述搜索结构为树结构或数组结构;在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则。2.如权利要求1所述的规则的多维度搜索方法,其特征在于,所述规则数组的索引结构为Bitmap结构,所述Bitmap结构的每一比特位对应所述规则数组的每一索引号,所述规则数组的一个索引号对应一条规则。3.如权利要求2所述的规则的多维度搜索方法,其特征在于,所述使所述搜索结构与所述索引结构进行关联包括:若所述搜索结构为树结构,则基于所有规则同一匹配项数值之间的父子关系,构建父子关系树,并使所述父子关系树的每一树节点与一Bitmap结构关联,其中,将Bitmap结构中与树节点数值匹配的规则所对应的比特位置1,其他比特位置0,以及将父树节点关联的Bitmap结构添加到子树节点关联的Bitmap结构中;将所述父子关系树的每一树节点与所述搜索结构的每一树节点进行关联。4.如权利要求2所述的规则的多维度搜索方法,其特征在于,所述使所述搜索结构与所述索引结构进行关联包括:若所述搜索结构为数组结构,则使数组结构的每一数组项与一Bitmap结构关联,其中,将Bitmap结构中与数组项数值匹配的规则所对应的比特位置1,其他比特位置0。5.如权利要求3或4所述的规则的多维度搜索方法,其特征在于,所述基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则包括:基于所述搜索结构中所述树节点或数组项对应的Bitmap结构,分别确定各Bitmap结构中置1的比特位所对应的规则为与所述待匹配数据的各数据项相匹配的规则。6.如权利要求5所述的规则的多维度搜索方法,其特征在于,在所述基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则的步骤之后,还包括:将与所述待匹配数据的各数据项相匹配的树节点或数组项对应的Bitmap结构进行与运算,并将与运算后的Bitmap结构中所有置1的比特位所对应的规则,确定为与所述待匹配数据的所有数据项相匹配的规则;若进行与运算后的Bitmap结构中存在多个置1的比特位,则将该Bitmap结构中优先级最高且置1的比特位对应的规则作为最终匹配的规则。7.一种规则的多维度搜索装置,其特征在于,所述规则的多维度搜索装置包括:创建模块,用于创建...

【专利技术属性】
技术研发人员:李帅
申请(专利权)人:深信服科技股份有限公司
类型:发明
国别省市:广东,44

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

1