【技术实现步骤摘要】
一种多关键词匹配方法和设备
[0001]本申请涉及计算机
,更具体地,涉及一种多关键词匹配方法和设备。
技术介绍
[0002]在计算机信息处理领域,多关键词匹配是一种基础且广泛应用的技术,但同时也是一项计算开销非常大的技术。特别是在DPI(DeepPacket Inspection,深度包检测)领域,多关键词匹配是关键技术,也是性能瓶颈所在。尤其当关键词增多之后(比如5000个以上),匹配性能更是会快速下降。
[0003]多关键词匹配有多种不同的实现平台和实现方法,如基于软件的各种匹配算法(如Brute
‑
Force、KMP、ShiftOr、Aho
‑
Corasick、BloomFilter、Wu.Manber、BDM,RF等);基于硬件的各种实现(如“结合字节比较器和存储器的实现”、“基于AC算法的硬件实现”、“基于TCAM的实现”、“基于BloomFilter的硬件实现等”)。但无论采用哪种实现技术,关键词数量的多少都是影响算法性能的一个重要因素,随着关键词规模的增加,算法的资源需求(内存、单位数据的处理时间等)也将迅速增加。尤其需要注意的是,虽然有一些多关键词匹配算法理论上是定速处理,不应随着关键词规模的增大而变慢(如Aho
‑
Corasick算法,即AC算法)。但实际上,因工程实现的限制和存储系统层次的客观制约(如基于x86CPU芯片的计算机),当关键词规模增大时,因为访存范围的增加,必然导致CacheMiss的增加从而增加处理延时,因而导致 ...
【技术保护点】
【技术特征摘要】
1.一种多关键词匹配方法,其特征在于,所述方法包括:获取由多个原始关键词组成的关键词集合,并基于预设分词算法对各所述原始关键词进行分词处理,得到由多个子词组成的子词集合;根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合;基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置;基于第二预设关键词匹配算法将各所述初步匹配位置与各所述原始关键词进行匹配,并将得到的相互匹配的最终匹配位置和最终目标原始关键词作为最终匹配结果。2.如权利要求1所述的方法,其特征在于,根据所述子词集合与所述关键词集合之间的关联关系以及预设简化条件降低所述子词集合中的子词数量,得到由多个目标子词组成的简化集合,具体为:根据所述关联关系生成二部图,所述二部图中包括与各所述子词对应的第一节点和与各所述原始关键词对应的第二节点,各所述第一节点和与自身关联的第二节点之间通过边连接;根据所述二部图和所述预设简化条件降低所述子词数量,得到所述简化集合;其中,所述预设简化条件为:所述原始关键词的数量与各所述目标子词的数量的比值不小于预设阈值。3.如权利要求2所述的方法,其特征在于,所述子词包括第一子词、第二子词和第三子词,所述第一子词的字符数量大于所述第二子词的字符数量,所述第二子词的字符数量大于所述第三子词的字符数量,与所述第一节点连接的所述边的数量为度,根据所述二部图和所述预设简化条件降低所述子词数量,得到所述简化集合,具体为:若与当前第一节点对应的子词为所述第一子词或所述第二子词,且所述当前第一节点的度不小于预设阈值,将所述当前第一节点作为目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;若所述二部图中不存在与所述第一子词或所述第二子词对应的第一节点,且与所述当前第一节点对应的子词为所述第三子词,且所述当前第一节点的度为所述二部图中最大的一个,将所述当前第一节点作为所述目标第一节点,并在所述二部图中删除与所述当前第一节点连接的边和第二节点;若所述二部图中不存在所述第二节点,根据各所述目标第一节点生成所述简化集合。4.如权利要求1所述的方法,其特征在于,所述第一预设关键词匹配算法采用基于BloomFilter算法的第一芯片实现,基于第一预设关键词匹配算法将待匹配数据和所述简化集合进行匹配,得到所述待匹配数据中与所述简化集合匹配的多个初步匹配位置,具体为:将所述简化集合作为输入规则编程加载至所述第一芯片;将所述待匹配数据流式输入所述第一芯片,根据所述第一芯片的输出结果得到多个所述初步匹配位置。5.如权利要求1所述的方法,其特征在于,所述第二预设关键词匹配算法基于TCAM芯片实现,各所述初步匹配位置带有标记信息,基于第二预设关键词匹配算法将各所述初步匹
配位置与各所述原始关键词进行匹配,具体为:将各所述原始关键词作为输入规则编程到所述TCAM芯片;基于各所述...
【专利技术属性】
技术研发人员:李云照,
申请(专利权)人:成都卓讯云网科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。