2-3 搜索引擎工作原理簡介

搜索引擎的工作過程大體上可以分成三個階段:

1、爬行和抓取:搜索引擎蜘蛛通過跟蹤鏈接訪問網頁,獲得頁面HTML代碼存入數據庫。

(1)蜘蛛

    搜索引擎用來爬行和訪問頁面的程序被稱爲蜘蛛,也稱爲機器人。

    搜索引擎蜘蛛訪問網站頁面時,類似於普通用戶使用的瀏覽器。蜘蛛程序發出頁面訪問請求後,服務器返回HTML代碼,蜘蛛程序把收到的代碼存入原始頁面數據庫。搜索引擎爲了提高爬行和抓取速度,都使用多個蜘蛛併發分佈爬行。

    蜘蛛訪問任何一個網站時,都會先訪問網站根目錄下的robots.txt文件。如果該文件裏禁止搜索引擎抓取某些文件或目錄,蜘蛛將遵守協議,不抓取被禁止的網址。

下面是常見的搜索引擎蜘蛛名稱:

Baiduspider+(+http://www.baidu.com/search/spider.htm) 百度蜘蛛

Mozilla/5.0(compatible;Yahoo!Slurp China;http://misc.yahoo.com.cn/help.html) 雅虎中國蜘蛛

Mozilla/5.0(compatible;Yahoo!Slurp/3.0;http://help.yahoo.con/help/us/ysearch/slurp) 英文雅虎蜘蛛

Mozilla/5.0(compatible;Googlebot/2.1;+http://www.google.com/bot.html) Google蜘蛛

msnbot/1.1(+http://search.msn.com/msnbot.htm) 微軟 Bing 蜘蛛

Sogou+web+robot+(+http://www.sogou.com/docs/help/webmasters.htm#07)  搜狗蜘蛛

Sosospider+(+http://help.soso.com/webspider.htm) 搜搜蜘蛛

Mozilla/5.0(compatible;YodaoBot/1.0;http://www.yodao.com/help/webmaster/spider/;) 有道蜘蛛

(2)跟蹤鏈接

    整個互聯網是由相互鏈接的網站及頁面組成的。從理論上說,蜘蛛從任何一個頁面出發,順着鏈接都可以爬行到網上的所有頁面。當然,由於網站及頁面鏈接結構異常複雜,蜘蛛需要採取一定的爬行策略才能遍歷網上所有頁面。

    最簡單的爬行遍歷策略分爲兩種,一種是深度優先,另一種是廣度優先。

    所謂深度優先,指的是蜘蛛沿着發現的鏈接一直向前爬行,直到前面再也沒有其他鏈接,然後返回到第一個頁面,沿着另一個鏈接再一直往前爬行。

    所謂廣度優先,指蜘蛛在一個頁面上發現多個鏈接時,不是順着一個鏈接一直向前,而是把頁面上所有第一層鏈接都爬一遍,然後再沿着第二層頁面上發現的鏈接爬向第三層頁面。

    實際操作中,深度優先和廣度優先通常是混合使用的,這樣既可以照顧到儘量多的網站

(3)吸引蜘蛛

影響被收錄的影響因素有:

a、網站和頁面權重。

b、頁面更新度。

c、導入鏈接。

d、與首頁點擊距離。

(4)地址庫

    爲了避免重複爬行和抓取網址,搜索引擎會建立一個地址庫,記錄已經被發現還沒有抓取的頁面,以及已經被抓取的頁面。

    地址庫中的URL來源有:

a、人工錄入的種子網站。

b、蜘蛛抓取頁面後,從HTML中解析出新的鏈接URL,與地址庫中的數據進行對比,如果是地址庫中沒有的網址,就存入待訪問地址庫。

c、站長通過搜索引擎網頁提交表格提交進來的網址。

(5)文件存儲

搜索引擎蜘蛛抓取的數據存入原始頁面數據庫。每個URL都有一個獨特的文件編號。

(6)爬行時的複製內容檢測

遇到權重很低的網站上大量轉載或抄襲內容時,很可能不再繼續爬行。

2、預處理:索引程序對抓取來的頁面數據進行文字提取、中文分詞、索引等處理,以備排名程序調用。

(1)提取文字

    目前搜索引擎仍以文字內容爲基礎,蜘蛛抓取到的頁面中的HTML代碼,還包含了大量的HTML格式標籤、JavaScript程序等,搜索引擎預處理首先要從HTML文件中去除標籤、程序,提取出可以用於排名處理的網頁面文字內容。

    除了可見文字,搜索引擎也會提取出一些特殊的包含文字信息的代碼,如Meta標籤中的文字、圖片替代文字、Flash文件的替代文字、鏈接錨文字等。

(2)中文分詞

    英文每個詞之間有空格,中文一個句子中的所有字或詞都是連在一起的。搜索引擎必須首先分辨哪幾個字組成一個詞,哪些字本身就是一個詞。

    中文分詞方法有兩種:一種是基於詞典匹配,另一種是基於統計。

    基於詞典匹配的方法,是指將分析的一段漢字與一個事先造好的詞典中的詞條進行匹配,在待分析漢字串中掃描到詞典中已有的詞條則匹配成功,或者說切分出一個單詞。其準確度在很大程度上取決於詞典的完整性和更新情況。

    基於統計的分詞方法,是指分析大量文字樣本,計算出字與字相鄰出現的統計概率,幾個字相鄰出現越多,就月可能形成一個單詞。基於統計的方法的優勢是對新出現的詞反應更快速,也有利於消除歧義。

    實際使用中,分詞系統都是混合使用兩種方法的,快速高校,又能識別生詞、新詞,消除歧義。

(3)去停止詞

    停止詞,這裏指的是在網頁內容中出現頻率很高,卻沒有實際影響的詞。如:“的”、“地”、“得”“啊”“但是”等不重要的詞。

    搜索引擎在索引頁面之前會去掉這些停止詞,使主題更加突出,減少無謂的計算量。

(4)消除噪聲

    絕大部分頁面還有一部分內容,對頁面主題沒有貢獻,比如版權聲明文字、導航條、廣告等。這些區塊都屬於噪聲,會分散頁面主題。

    搜索引擎需要識別並消除這些噪聲,排名時不使用噪聲內容。

    消除噪聲的基本方法:根據HTML標籤對頁面分塊,區分出頁頭、導航、正文、頁腳、廣告等區域,在網站上大量重複出現的區塊往往屬於噪聲。對頁面進行消噪後,剩下的纔是頁面主體內容。

(5)去重

    同一篇文章經常會重複出現在不同網站及同一個網站的不同網址上,搜索引擎並不喜歡這種重複性的內容。雖然都是內容相關的,但用戶搜索時,如果在前兩頁看到的都是來自不同網站的同一篇文章,用戶體驗就太差了,所以在進行索引前還需要識別和刪除重複內容,這個過程就是“去重”。

    “去重”的基本方法:對頁面特徵關鍵詞計算指紋,也就是說從頁面主體內容中選取最有代表性的一部分關鍵詞,然後計算這些關鍵詞的數字指紋。通常選取10個特徵關鍵詞就可以達到比較高的計算準確性,再選取更多詞對去重準確性提高的貢獻也就不大了。

    典型的指紋計算方法,如MD5算法。這類指紋算法的特點是,輸入特徵關鍵詞有任何微小的變化,都會導致計算出的指紋有很大差距。

    瞭解了搜索引擎的去重算法,SEO人員就應該清楚,簡單的增加“的”、“地”、“得”或挑換段落順序這種所謂僞原創,並不能逃過搜索引擎的去重算法,因爲這樣的操作無法改變文章的特徵關鍵詞。而且搜索引擎的去重算法很可能不止於頁面級別,而是進行到段落級別,混合不同文章、交叉調換段落順序也不能使轉載和抄襲變成原創。

(6)正向索引

    經過以上步驟後,搜索引擎得到的就是獨特的、能反映頁面主體內容的、以詞爲單位的內容。

    接下來搜索引擎索引程序就可以提取關鍵詞,按照分詞程序劃分好的詞,把頁面轉換爲一個關鍵詞組成的集合,同時記錄每一個關鍵詞在頁面上的出現頻率、出現次數、格式(如出現在標題標籤、黑體、H標籤、錨文字等),位置(如頁面第一段文字等)。這樣,每一個頁面都可以記錄爲一串關鍵詞集合,其中每個關鍵詞的詞頻、格式、位置等權重信息也都記錄在案。

    搜索引擎索引程序將頁面及關鍵詞形成詞表結構存儲進索引庫。每個文件都對應一個文件ID,文件內容被表示爲一串關鍵詞的集合。其實在搜索引擎索引庫中,關鍵詞也已經轉換爲關鍵詞ID。這樣的數據結構就稱爲正向索引。

(7)倒排索引

(8)鏈接關係計算

(9)特殊文件處理

3、排名:用戶輸入關鍵詞後,排名程序調用索引庫數據,計算相關性,然後按一定格式生成搜索結果頁面。

(1)搜索詞處理

(2)文件匹配

(3)初始子集的選擇

(4)相關性計算

(5)排名過濾及調整

(6)排名顯示

(7)搜索緩存

(8)查詢及點擊日誌


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章