網路城邦

上一篇 回創作列表 下一篇   字體:
基礎知識——搜尋引擎原理
2008/09/07 21:06:12瀏覽1204|回應0|推薦3

基礎知識——搜尋引擎原理


老師的話:「原理」那麼專業的知識,怎麼反說是「基礎知識」呢?——哈哈,告訴你——這樣你才知道你要找的,什麼可以找到,什麼不可以找到。
  你有沒有過以下心得:
  1.不可能搜尋到今天的新聞。因為引擎伺服器每幾天或幾十天才能完成一次資料的處理,今天的新聞今天伺服器做不完。(以後有可能做完,目前通常是搜到一月前的資料。)
  2.不可能搜尋到網頁上本來沒有的東西。比如:FBI2003年(今年)的行動計劃。你家裡房門鑰匙通常放在哪個抽屜——這得問你爸爸媽媽。
  3.電腦沒有智慧,智慧要靠自己。(因為它只是資料庫!)

此圖資料來源 http://www.howstuffworks.com/search-engine1.htm

搜尋引擎並不真正搜尋互聯網,它搜尋的實際上是預先整理好的網頁索引資料庫。

  真正意義上的搜尋引擎,通常指的是收集了因特網上幾千萬到幾十億個網頁並對網頁中的每一個詞(即關鍵字)進行索引,建立索引資料庫的全文搜尋引擎。當用戶查找某個關鍵字的時候,所有在頁面內容中包含了該關鍵字的網頁都將作爲搜尋結果被搜出來。在經過複雜的演算法進行排序後,這些結果將按照與搜尋關鍵字的相關度高低,依次排列。

  現在的搜尋引擎已普遍使用超鏈分析技術,除了分析索引網頁本身的內容,還分析索引所有指向該網頁的鏈結的URLAnchorText、甚至鏈結周圍的文字。所以,有時候,即使某個網頁A中並沒有某個詞比如惡魔撒旦,但如果有別的網頁B用鏈結惡魔撒旦指向這個網頁A,那麽用戶搜尋惡魔撒旦時也能找到網頁A。而且,如果有越多網頁(CDEF……)用名爲惡魔撒旦的鏈結指向這個網頁A,或者給出這個鏈結的源網頁(BCDEF……)越優秀,那麽網頁A在用戶搜尋惡魔撒旦時也會被認爲更相關,排序也會越靠前。

  搜尋引擎的原理,可以看做三步:從互聯網上抓取網頁建立索引資料庫在索引資料庫中搜尋排序。  

從互聯網上抓取網頁

利用能夠從互聯網上自動收集網頁的Spider系統程式,自動訪問互聯網,並沿著任何網頁中的所有URL爬到其他網頁,重復這過程,並把爬過的所有網頁收集回來。

建立索引資料庫

由分析索引系統程式對收集回來的網頁進行分析,提取相關網頁資訊(包括網頁所在URL、編碼類型、頁面內容包含的關鍵字、關鍵字位置、生成時間、大小、與其他網頁的鏈結關係等),根據一定的相關度演算法進行大量複雜計算,得到每一個網頁針對頁面內容中及超鏈中每一個關鍵字的相關度(或重要性),然後用這些相關資訊建立網頁索引資料庫。

在索引資料庫中搜尋排序

當用戶輸入關鍵字搜尋後,由搜尋系統程式從網頁索引資料庫中找到符合該關鍵字的所有相關網頁。因爲所有相關網頁針對該關鍵字的相關度早已算好,所以只需按照現成的相關度數值排序,相關度越高,排名越靠前。
最後,由頁面生成系統將搜尋結果的鏈結地址和頁面內容摘要等內容組織起來返回給用戶。 

  搜尋引擎的Spider一般要定期重新訪問所有網頁(各搜尋引擎的周期不同,可能是幾天、幾周或幾月,也可能對不同重要性的網頁有不同的更新頻率),更新網頁索引資料庫,以反映出網頁內容的更新情況,增加新的網頁資訊,去除死鏈結,並根據網頁內容和鏈結關係的變化重新排序。這樣,網頁的具體內容和變化情況就會反映到用戶查詢的結果中。

  互聯網雖然只有一個,但各搜尋引擎的能力和偏好不同,所以抓取的網頁各不相同,排序演算法也各不相同。大型搜尋引擎的資料庫儲存了互聯網上幾億至幾十億的網頁索引,資料量達到幾千G甚至幾萬G。但即使最大的搜尋引擎建立超過二十億網頁的索引資料庫,也只能占到互聯網上普通網頁的不到30%,不同搜尋引擎之間的網頁數據重疊率一般在70%以下。我們使用不同搜尋引擎的重要原因,就是因爲它們能分別搜尋到不同的內容。而互聯網上有更大量的內容,是搜尋引擎無法抓取索引的,也是我們無法用搜尋引擎搜尋到的。

  你心裏應該有這個概念:搜尋引擎只能搜到它網頁索引資料庫裏儲存的內容。你也應該有這個概念:如果搜尋引擎的網頁索引資料庫裏應該有而你沒有搜出來,那是你的能力問題,學習搜尋技巧可以大幅度提高你的搜尋能力。

 

資料來源: http://www.sowang.com/yyyl.htm 基本未做改動,圖是我另找的,雖說英文,可一看就懂。

( 休閒生活生活情報 )

回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=acidlove1222&aid=2198354