搜索引擎中的URL散列
生活随笔
收集整理的這篇文章主要介紹了
搜索引擎中的URL散列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
散列(hash)也就是哈希,是信息存儲和查詢所用的一項基本技術。在搜索引擎中網絡爬蟲在抓取網頁時為了對網頁進行有效地排重必須對URL進行散列,這樣才能快速地排除已經抓取過的網頁。最理想的狀態是對聯網上所有的網頁都分配一個哈希地址,可想而知這是一個相當寵大的數字,但實際上往往是無法做到這一點。雖然google、百度都是采用分布式的機群進行哈希排重,但實際上也是做不到所有的網頁都分配一個唯一散列地址。但是可以通過多級哈希來盡可能地解決,但卻要會出時間代價在解決哈希沖突問題。所以這是一個空間和時間相互制約的問題,我們知道哈希地址空間如果足夠大可以大大減少沖突次數,所以可以通過多臺機器將哈希表根據一定的特征局部化,分散開來,每一臺機器都是管理一個局部的散列地址。
?? 一般情況下所有哈希函數,如果其原始字符串很相似則哈希地址沖突的幾率就加大,所以同一個網站下的網頁URL沖突的幾率也就很大,特別是那些帶參數的動態網頁URL。所以我可以將原始的URL進行一次標準化處理后再做哈希這樣就會有很大的改善,本人通過大量的實驗發現先對URL進行一次MD5的加密,然后再對加密后的這個串再哈希這樣大大提高了哈希的效率。下面是一些實驗結果。(100網頁地址空間,而10萬的網頁URL)。
| 方法 | URL長度(20個字符) | URL長度(128個字符) |
| 直接哈希 | 6000多次 | 8萬多次 |
| MD5后再哈希 | 少于500次 | 少于500次 |
??? 可見URL長度越長直接哈希其沖突率越高,因為其哈希值過于集中。而采用MD5再哈希的方法明顯對散列地址起到了一個均勻發布的作用。
總結
以上是生活随笔為你收集整理的搜索引擎中的URL散列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 泰拉瑞亚七彩草蛉怎么在白天释放?
- 下一篇: “不闻风浪覆虚舟”上一句是什么