搜索引擎中的URL散列
来源:互联网 发布:产品经理数据分析工具 编辑:程序博客网 时间:2024/05/21 08:45
散列(hash)也就是哈希,是信息存储和查询所用的一项基本技术。在搜索引擎中网络爬虫在抓取网页时为了对网页进行有效地排重必须对URL进行散列,这样才能快速地排除已经抓取过的网页。最理想的状态是对联网上所有的网页都分配一个哈希地址,可想而知这是一个相当宠大的数字,但实际上往往是无法做到这一点。虽然google、百度都是采用分布式的机群进行哈希排重,但实际上也是做不到所有的网页都分配一个唯一散列地址。但是可以通过多级哈希来尽可能地解决,但却要会出时间代价在解决哈希冲突问题。所以这是一个空间和时间相互制约的问题,我们知道哈希地址空间如果足够大可以大大减少冲突次数,所以可以通过多台机器将哈希表根据一定的特征局部化,分散开来,每一台机器都是管理一个局部的散列地址。
一般情况下所有哈希函数,如果其原始字符串很相似则哈希地址冲突的几率就加大,所以同一个网站下的网页URL冲突的几率也就很大,特别是那些带参数的动态网页URL。所以我可以将原始的URL进行一次标准化处理后再做哈希这样就会有很大的改善,本人通过大量的实验发现先对URL进行一次MD5的加密,然后再对加密后的这个串再哈希这样大大提高了哈希的效率。下面是一些实验结果。(100网页地址空间,而10万的网页URL)。
方法URL长度(20个字符)URL长度(128个字符)直接哈希6000多次8万多次MD5后再哈希少于500次少于500次可见URL长度越长直接哈希其冲突率越高,因为其哈希值过于集中。而采用MD5再哈希的方法明显对散列地址起到了一个均匀发布的作用。
- 搜索引擎中的URL散列
- 搜索引擎中的URL散列
- 搜索引擎URL中的汉字解析
- 谈URL在SEO搜索引擎排名中的权重及影响
- 各搜索引擎 url 规则
- 搜索引擎爬虫,抓取url
- 搜索引擎优化-URL重写
- URL散列算法-ELF Hash法
- Perl中的散列
- 面向搜索引擎的URL优化
- 面向搜索引擎的URL设计
- 搜索引擎 url 提交入口网址
- 友好的搜索引擎URL地址
- PHP中的散列函数
- Java中的散列映射
- Java中的散列存储
- JS应用MD5散列计算头像URL
- url中的#
- 关于数组的&a[0]和&a及指针访问的问题
- centos 6.0 I like it~
- 将MYSQL读写权限转化为system权限
- 硬件负载均衡设备介绍
- 图片服务器的url hash架构
- 搜索引擎中的URL散列
- 到底什么是hash?它起什么作用?
- SVN权限设置说明
- sed指令助记表
- redis备忘录
- fibonacci 算法
- Java学习小计
- 这是个开始
- 桌面显示IE图标