搜索引擎工作原理是什么 |
發布時間: 2012/9/18 11:16:36 |
一、搜索引擎的分類
獲得網站網頁資料,能夠建立數據庫并提供查詢的系統,我們都可以把它叫做搜索引擎。按照工作原理的不同,可以把它們分為兩個基本類別:全文搜索引擎(FullTextSearchEngine)和分類目錄Directory)。
全文搜索引擎的數據庫是依靠一個叫“網絡機器人(Spider)”或叫“網絡蜘蛛(crawlers)”的軟件,通過網絡上的各種鏈接自動獲取大量網頁信息內容,并按以定的規則分析整理形成的。Google、百度都是比較典型的全文搜索引擎系統。
分類目錄則是通過人工的方式收集整理網站資料形成數據庫的,比如雅虎中國以及國內的搜狐、新浪、網易分類目錄。另外,在網上的一些導航站點,也可以歸屬為原始的分類目錄,比如“網址之家”。
全文搜索引擎和分類目錄在使用上各有長短。全文搜索引擎因為依靠軟件進行,所以數據庫的容量非常龐大,但是,它的查詢結果往往不夠準確;分類目錄依靠人工收集和整理網站,能夠提供更為準確的查詢結果,但收集的內容卻非常有限。為了取長補短,現在的很多搜索引擎,都同時提供這兩類查詢,一般對全文搜索引擎的查詢稱為搜索“所有網站”或“全部網站”,比如Google的全文搜索(http://www.google.com/intl/zh-CN/);把對分類目錄的查詢稱為搜索“分類目錄”或搜索“分類網站”,比如新浪搜索和雅虎中國搜索(http://cn.search.yahoo.com/dirsrch/)。
在網上,對這兩類搜索引擎進行整合,還產生了其它的搜索服務,在這里,我們權且也把它們稱作搜索引擎,主要有這兩類:
⒈元搜索引擎(METASearchEngine)。這類搜索引擎一般都沒有自己網絡機器人及數據庫,它們的搜索結果是通過調用、控制和優化其它多個獨立搜索引擎的搜索結果并以統一的格式在同一界面集中顯示。元搜索引擎雖沒有“網絡機器人”或“網絡蜘蛛”,也無獨立的索引數據庫,但在檢索請求提交、檢索接口代理和檢索結果顯示等方面,均有自己研發的特色元搜索技術。比如“metaFisher元搜索引擎”
(http://www.hsfz.net/fish/),它就調用和整合了Google、Yahoo、AlltheWeb、百度和OpenFind等多家搜索引擎的數據。
⒉集成搜索引擎(All-in-OneSearchPage)。集成搜索引擎是通過網絡技術,在一個網頁上鏈接很多個獨立搜索引擎,查詢時,點選或指定搜索引擎,一次輸入,多個搜索引擎同時查詢,搜索結果由各搜索引擎分別以不同頁面顯示,比如“網際瑞士軍刀”(http://free.okey.net/%7Efree/search1.htm)。
二、搜索引擎的工作原理
搜索引擎并不真正搜索互聯網,它搜索的實際上是預先整理好的網頁索引數據庫。
真正意義上的搜索引擎,通常指的是收集了因特網上幾千萬到幾十億個網頁并對網頁中的每一個詞(即關鍵詞)進行索引,建立索引數據庫的全文搜索引擎。當用戶查找某個關鍵詞的時候,所有在頁面內容中包含了該關鍵詞的網頁都將作為搜索結果被搜出來。在經過復雜的算法進行排序后,這些結果將按照與搜索關鍵詞的相關度高低,依次排列。
現在的搜索引擎已普遍使用超鏈分析技術,除了分析索引網頁本身的內容,還分析索引所有指向該網頁的鏈接的URL、AnchorText、甚至鏈接周圍的文字。所以,有時候,即使某個網頁A中并沒有某個詞比如“惡魔撒旦”,但如果有別的網頁B用鏈接“惡魔撒旦”指向這個網頁A,那么用戶搜索“惡魔撒旦”時也能找到網頁A。而且,如果有越多網頁(C、D、E、F……)用名為“惡魔撒旦”的鏈接指向這個網頁A,或者給出這個鏈接的源網頁(B、C、D、E、F……)越優秀,那么網頁A在用戶搜索“惡魔撒旦”時也會被認為更相關,排序也會越靠前。
搜索引擎的原理,可以看做三步:從互聯網上抓取網頁→建立索引數據庫→在索引數據庫中搜索排序。
從互聯網上抓取網頁
利用能夠從互聯網上自動收集網頁的Spider系統程序,自動訪問互聯網,并沿著任何網頁中的所有URL爬到其它網頁,重復這過程,并把爬過的所有網頁收集回來。
建立索引數據庫
當用戶輸入關鍵詞搜索后,由搜索系統程序從網頁索引數據庫中找到符合該關鍵詞的所有相關網頁。因為所有相關網頁針對該關鍵詞的相關度早已算好,所以只需按照現成的相關度數值排序,相關度越高,排名越靠前。 最后,由頁面生成系統將搜索結果的鏈接地址和頁面內容摘要等內容組織起來返回給用戶。 搜索引擎的Spider一般要定期重新訪問所有網頁(各搜索引擎的周期不同,可能是幾天、幾周或幾月,也可能對不同重要性的網頁有不同的更新頻率),更新網頁索引數據庫,以反映出網頁內容的更新情況,增加新的網頁信息,去除死鏈接,并根據網頁內容和鏈接關系的變化重新排序。這樣,網頁的具體內容和變化情況就會反映到用戶查詢的結果中。 互聯網雖然只有一個,但各搜索引擎的能力和偏好不同,所以抓取的網頁各不相同,排序算法也各不相同。大型搜索引擎的數據庫儲存了互聯網上幾億至幾十億的網頁索引,數據量達到幾千G甚至幾萬G。但即使最大的搜索引擎建立超過二十億網頁的索引數據庫,也只能占到互聯網上普通網頁的不到30%,不同搜索引擎之間的網頁數據重疊率一般在70%以下。我們使用不同搜索引擎的重要原因,就是因為它們能分別搜索到不同的內容。而互聯網上有更大量的內容,是搜索引擎無法抓取索引的,也是我們無法用搜索引擎搜索到的。 你心里應該有這個概念:搜索引擎只能搜到它網頁索引數據庫里儲存的內容。你也應該有這個概念:如果搜索引擎的網頁索引數據庫里應該有而你沒有搜出來,那是你的能力問題,學習搜索技巧可以大幅度提高你的搜索能力。本文出自:億恩科技【www.laynepeng.cn】 |