您對於搜素引擎到底瞭解了多少。對於本身搜索引擎排名的基本原理應該清楚。地瓜也覺得現在做 SEO 站羣的大蝦們越來越多,什麼感想,什麼方討論都是近乎雷同,很多時候我們自認為自己是 SEO 站羣,其實我們只是知道些簡單的方法與技巧,真正的原理,真正的是什麼並沒有搞明白。因此,地瓜覺得自己也有必要多多學習與感悟 SEO 站羣中基本其實也是核心的東西。搜索引擎工作過程非常複雜,地瓜簡單分享搜索引擎是怎樣實現網頁排名的。正如 ZAC 書中所説的 “這裏介紹的內容相對於真正的搜索引擎技術來説只是皮毛,不過對 SEO 站羣人員已經足夠用了。” 搜索引擎的工作過程大體上可以分成三個階段。 (1) 爬行和抓取:搜索引擎蜘蛛通過跟蹤連結訪問網頁,獲得頁面 HTML 代碼存入資料庫。 (2) 預處理:索引程序對抓取來的頁面資料進行文字提取、中文分詞、索引等處理,以備排名程序呼叫。 (3) 排名:多用户輸入關鍵詞後,排名程序呼叫索引庫資料,計算相關性,然後按一定格式生成搜索結果頁面。而本文,地瓜分享的是搜索引擎工作原理的第三個步驟:步驟,方法,排名: 經過搜索引擎蜘蛛抓取頁面,索引程序計算得到倒排索引後,搜索引擎就準備好可以隨時處理多用户搜索了。多用户在搜索框填入關鍵詞後,排名程序呼叫索引庫資料,計算排名顯示給多用户,排名過程是與多用户直接互動的。 1. 搜索詞處理搜索引擎接收到多用户輸入的搜索詞後,需要對搜索詞做一些處理,才能進入排名過程。搜索詞處理包括如下幾方面。 (1) 中文分詞。與頁面索引時一樣,搜索詞也必須進行中文分詞,將查詢字串轉換為以詞為基礎的關鍵片語合。分詞原理與頁面分詞相.(2) 去停止詞。和索引時一樣,搜索引擎也需要把搜索詞中的停止詞去掉,大限度地提高排名相關性及效率。 (3) 指令處理。查詢詞完成分詞後,搜索引擎的預設處理方式是在關鍵詞雙頭螺柱聯合之間使用 “與” 邏輯。也就是説多用户搜索 “*方法” 時,程序分詞為 “*” 和 “方法” 兩個詞,搜索引擎排序時預設認為,多用户尋找的是既包含 “*”,也包含 “方法” 的頁面。只包含 “*” 不包含 “方法”,或者只包含 “方法” 不包含 “*” 的頁面,被認為是不符合搜索條件的。當然,這只是極為簡化的為了説明原理的説法,實際上我們還是會看到只包含一部分關鍵詞的搜索結果。另外多用户輸入的查詢詞還可能包含一些高階搜索指令,如加號、減號等,搜索引擎都需要做出識別和相應處理。有關高階搜索指令,後面還有詳細説明。 (4) 拼寫錯誤矯正。多用户如果輸入了明顯錯誤的字或英文單詞拼錯,搜索引擎會提示多用户正確的用字或拼法。 (5) 整合搜索觸發。某些搜索詞會觸發整合搜索,比如明星姓名就經常觸發圖片和視訊內容,當前的熱門話題又容易觸發資訊內容。哪些詞觸發哪些整合搜索,也需要在搜索詞處理階段計算。 2. 檔案匹配搜索詞經過處理後,搜索引擎得到的是以詞為基礎的關鍵詞*。檔案匹配階段就是找出含有所有關鍵詞的檔案。在索引部分提到的倒排索引使得檔案匹配能夠快速完成。假設多用户搜索 “關鍵詞 2 關鍵詞 7”,排名程序只要在倒排索引中找到 “關鍵詞 2” 和 “關鍵詞 7” 這兩個詞,就能找到分別含有這兩個詞的所有頁面。經過簡單計算就能找出既包含 “關鍵詞 2”,也包含 “關鍵詞 7” 的所有頁面:檔案 1 和檔案 6 。 3. 初始子集的選擇找到包含所有關鍵詞的匹配檔案後,還不能進行相關性計算,因為找到的檔案經常會有幾十萬幾百萬,甚至上千萬個。要對這麼多檔案實時進行相關性計算,需要的時間還是比較長的。實際上多用户並不需要知道所有匹配的幾十萬、幾百萬個頁面,絕大部分多用户只會檢視前兩頁,也就是前 20 個結果。搜索引擎也並不需要計算這麼多頁面的相關性,而只要計算重要的一部分頁面就可以了。常用搜索引擎的人都會注意到,搜索結果頁面通常多顯示 100 個。多用户點選搜索結果頁面底部的 “下一頁” 連結,多也只能看到第 100 頁,也就是 1000 個搜索結果。搜索引擎只需要計算前 1000 個結果的相關性,就能滿足要求。但問題在於,還沒有計算相關性時,搜索引擎又怎麼知道哪一千個檔案是相關的? 所以用於後相關性計算的初始頁面子集的選擇,必須依靠其他特徵而不是相關性,其中主要的就是頁面權重。由於所有匹配檔案都已經具備了基本的相關性 (這些檔案都包含所有查詢關鍵詞),搜索引擎通常會用非相關性的頁面特徵選出一個初始子集。初始子集的數目是多少? 幾萬個? 或許更多,外人並不知道。不過可以肯定的是,當匹配頁面數目巨大時,搜索引擎不會對這麼多頁面進行計算,而必須選出頁面權重較高的一個子集,再對子集中的頁面進行相關性計算。 4. 相關性計算選出初始子集後,對子集中的頁面計算關鍵詞相關性。計算相關性是排名過程中重要的一步。相關性計算是搜索引擎演算法中令 SEO 站羣感興趣的部分。影響相關性的主要因素包括如下幾方面。 (1) 關鍵詞常用程度。經過分詞後的多個關鍵詞,對整個搜索字串的意義貢獻並不相同。越常用的詞對搜索詞的意義貢獻越小,越不常用的詞對搜索詞的意義貢獻越大。舉個例子,假設多用户輸入的搜索詞是 “我們冥王星” 。 “我們” 這個詞常用程度非常高,在很多頁面上會出現,它對 “我們冥王星” 這個搜索詞的辨識程度和意義相關度貢獻就很小。找出那些包含 “我們” 這個詞的頁面,對搜索排名相關性幾乎沒有什麼影響,有太多頁面包含 “我們” 這個詞。未來幾年,都不會有實質性的改變。好了,以上是我的一些觀點,歡迎大家指正。