您對於搜素引擎到底瞭解了多少。對於本身搜尋引擎排名的基本原理應該清楚。地瓜也覺得現在做 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) 關鍵詞常用程度。經過分詞後的多個關鍵詞,對整個搜尋字串的意義貢獻並不相同。越常用的詞對搜尋詞的意義貢獻越小,越不常用的詞對搜尋詞的意義貢獻越大。舉個例子,假設多使用者輸入的搜尋詞是 “我們冥王星” 。 “我們” 這個詞常用程度非常高,在很多頁面上會出現,它對 “我們冥王星” 這個搜尋詞的辨識程度和意義相關度貢獻就很小。找出那些包含 “我們” 這個詞的頁面,對搜尋排名相關性幾乎沒有什麼影響,有太多頁面包含 “我們” 這個詞。未來幾年,都不會有實質性的改變。好了,以上是我的一些觀點,歡迎大家指正。