海量url匹配算法的制作方法

文档序号:6440814阅读:283来源:国知局
专利名称:海量url匹配算法的制作方法
技术领域
本发明涉及字符串比较方面,尤其是海量url匹配算法的改进。
技术背景
随着计算机网络的发展,通过网络进行娱乐,工作,休闲等已经占据着生活的大部分时间,万维网的应用已占因特网通信量的90%,从而影响到工作效率。在这种情况下,需要对访问的url进行类型识别和过滤,进而对访问的url进行控制,提高工作效率。在匹配识别url的过程中,提高效率是非常重要的,本文就基于以上的背景设计的海量url匹配算法,极大的缩短了 url匹配时间,提高了准确率,使得url过滤更加的高效。发明内容
为解决上述技术问题,本发明根据实际网络应用中的相关特点进行分析并提出了一种海量url匹配的算法。
一种海量url匹配的算法,包括以下步骤
1、对一条url进行一定的运算,可以得到一个整数,把这个整数进行hash后,得到一个hash值,即存放在hash表中的位置。
2、对一条url进行不同的运算,得到三个整数numl、num2、num3。对numl、num2、 num3 分别进行 hash,得到 hash 值 keyl、key2、key3。
3、把得到的key2、key3分别存放到node结构体中,然后以keyl作为该节点在 hash表中的位置。当hash表中的该位置已经有节点nodel (和node —样的节点)了,则添加到nodel节点的next指针,形成一个链表。
4、读取海量url库中的下一条url,然后跳转到步骤2顺序执行,直到url库的数据读完位置。
5、当获得到一条url 1时,它需要和海量url库中的所有url匹配,这时只需要对 urll执行步骤2,得到了 keyl、key2、key3,这时只要遍历hash表中keyl位置的链表
A、遍历该链表的每一个节点,并用上面得到的keyl、key2分别和节点中keyl、 key2相比较,如果都相等,则在url库中匹配到urll。
B、如果已经遍历完链表,还没有找到一个相等的节点,则此url不在url库中。


图1是本发明算法中hash表和节点图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
一种海量url匹配的算法,包括以下步骤
1、对一条url进行一定的运算,可以得到一个整数,把这个整数进行hash后,得到一个hash值,即存放在hash表中的位置。
2、对一条ur 1进行不同的运算,得到三个整数numl、num2、num3。对numl、num2、 num3 分别进行 hash,得到 hash 值 keyl、key2、key3。
3、把得到的key2、key3分别存放到node结构体中,然后以keyl作为该节点在 hash表中的位置。当hash表中的该位置已经有节点nodel (和node —样的节点)了,则添加到nodel节点的next指针,形成一个链表。
4、读取海量url库中的下一条url,然后跳转到步骤2顺序执行,直到url库的数据读完位置。
5、当获得到一条urll时,它需要和海量url库中的所有url匹配,这时只需要对 urll执行步骤2,得到了 keyl、key2、key3,这时只要遍历hash表中keyl位置的链表
A、遍历该链表的每一个节点,并用上面得到的keyl、key2分别和节点中keyl、 key2相比较,如果都相等,则在url库中匹配到urll。
B、如果已经遍历完链表,还没有找到一个相等的节点,则此url不在url库中。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
权利要求
1. 一种海量url匹配的算法,包括以下步骤(1)对一条url进行一定的运算,可以得到一个整数,把这个整数进行hash后,得到一个hash值,即存放在hash表中的位置。(2)对一条url进行不同的运算,得到三个整数numl、num2、num3。对numl、num2、num3 分别进行 hash,得到 hash 值 keyl、key2、key3。(3)把得到的key2、key3分别存放到node结构体中,然后以keyl作为该节点在hash 表中的位置。当hash表中的该位置已经有节点nodel (和node —样的节点)了,则添加到 nodel节点的next指针,形成一个链表。(4)读取海量url库中的下一条url,然后跳转到步骤2顺序执行,直到url库的数据读完位置。(5)当获得到一条url1时,它需要和海量url库中的所有url匹配,这时只需要对url 1 执行步骤2,得到了 keyl、key2、key3,这时只要遍历hash表中keyl位置的链表A、遍历该链表的每一个节点,并用上面得到的keyl、key2分别和节点中keyl、key2相比较,如果都相等,则在url库中匹配到url 1。B、如果已经遍历完链表,还没有找到一个相等的节点,则此url不在url库中。
全文摘要
本发明公开了一种海量url匹配算法,把url通过一定的运算转换为一个整数,然后添加到hash表中,并对同一个url进行不同的运算转换为不同的整数,以提高匹配时的准确率。本发明可以有效的缩短url匹配时间,提高匹配的准确率,使得url过滤更加的高效。
文档编号G06F17/30GK102521348SQ20111041103
公开日2012年6月27日 申请日期2011年12月12日 优先权日2011年12月12日
发明者张水华 申请人:上海西默通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1