搜索引擎對關鍵詞的排名主要經過三個階段:
第一階段:爬行和抓取
爬行和抓取是搜索引擎工作的第一步,完成數據收集的任務。
搜索引擎蜘蛛訪問網站頁面時類似於普通用戶使用的浏覽器。蜘蛛程序發出頁面的訪問請求後,服務器返回HTML代碼,蜘蛛程序把收到的代碼存入原始頁面數據庫。搜索引擎為了提高爬行和抓取速度,都使用多個蜘蛛並發分布爬行。
蜘蛛訪問任何一個網站時,都會先訪問網站根目錄下的robots.txt文件。如果robots.txt文件禁止搜索引擎抓取某些文件或目錄,蜘蛛將遵守協議,不抓取被禁止的網址。
整個互聯網是由相互鏈接的網站和頁面組成的。從理論上說,蜘蛛從任何一個頁面出發,順著鏈接都可以爬行到網站上的所有頁面。其中,最簡單的爬行遍歷策略分為兩種,一種是深度優先,一種是廣度優先。無論是深度優先還是廣度優先策略,只要給蜘蛛足夠的時間,都能爬完整個互聯網。在實際工作中,蜘蛛的帶寬資源、時間都不是無限的,也不可能爬完多有頁面。
搜索引擎蜘蛛抓取的數據存入原始頁面數據庫。其中的頁面數據與用戶浏覽器得到的HTML是完全一樣的。每個URL都有一個獨特的文件編號。
第二階段:預處理
“預處理“也被簡稱為”索引“,因為索引是預處理最主要的步驟。
搜索引擎蜘蛛抓取的原始頁面,並不能直接用於查詢排名處理。必須經過預處理階段,從HTML文件中去除標簽、程序,提取出可以用於排名處理的網頁文字內容。蜘蛛會將提取出來的文字進行中文分詞、去除停止詞、消除噪聲、去重等處理,提取出頁面中重要的文字,建立關鍵詞與頁面的索引,形成索引詞庫表。建立索引的過程中有正向索引和倒排索引兩種排序方式,使得排序更加准確。
另外,鏈接關系計算也是預處理中很重要的一部分。現在所有的主流搜索引擎排名因素中都包含網頁之間的鏈接流動信息。搜索引擎在抓取頁面內容後,必須事前計算出:頁面上有哪些鏈接指向哪些其他頁面,每個頁面有哪些導入鏈接,鏈接使用了什麼描文字,這些復雜的鏈接指向關系形成了網站和頁面的鏈接權重。
第三階段:排名
經過搜索引擎蜘蛛抓取頁面,索引程序計算得到倒排索引後,搜索引擎就准備隨時處理用戶的搜索需求了。搜索引擎主要對用戶的搜索詞進行中文分詞處理,去停止詞處理、指令處理、拼寫錯誤矯正、整合搜索處罰等處理進行用戶搜索詞有搜索引擎索引詞庫的匹配,建立排名。