google搜索引擎的工作原理 | 互聯網的那點事
摘要: ppcblog.com呈現給我們一幅由jess bachman(在wallstats.com工作)精心描繪的示意圖,這張流程圖展示了每天擁有3億次點擊量的google搜索按鈕背后搜索引擎在那不到1秒的響應時間內所進行的處理。 這是我剛付印的最新示意圖,這張流程...
ppcblog.com呈現給我們一幅由jess bachman(在wallstats.com工作)精心描繪的示意圖,這張流程圖展示了每天擁有3億次點擊量的google搜索按鈕背后搜索引擎在那不到1秒的響應時間內所進行的處理。
這是我剛付印的最新示意圖,這張流程圖演示了在你點擊google搜索按鈕后,在google返回查詢結果前那一眨眼的功夫里,google是如何處理你的搜索請求的?這可是搜索巨人google年贏利額高達200億美元的殺手級應用,也是internet首屈一指的商業和技術神話,大家肯定都想知道google這棵搖錢樹背后的秘密。
一、google官方對其搜索技術的敘述
我們搜索技術的后端軟件會在服務器側觸發一系列執行時間不到1秒的并行計算,google問世前的傳統搜索引擎的搜索結果嚴重依賴于關鍵詞在頁面上出現的頻度,我們使用了200多個指標信號(其中包括我們擁有專利的pagerank頁面等級加權算法)用來檢查萬維網的鏈接結構(佩奇和布林最初的想法是把萬維網的鏈接結構用圖論的有向無環圖來建模)并決定網頁的重要程度,我們假定一個網頁的重要程度取決于別的頁面對它的引用,就像學術論文中的引用指數一樣,重要的論文總是會被很多其他論文引用。然后我們再根據搜索條件進行超文本匹配分析(對bot抓取的頁面內容進行關鍵詞倒排索引檢索)確定跟搜索請求最相關的網頁。綜合最重要的網頁和跟搜索請求最相關的網頁兩個方面,我們就能按重要程度和用戶搜索請求相關程度把查詢結果排序后呈現給我們的用戶。
二、數據中心:google用來索引世界的塔
google的數據中心高度機密,我們能了解到的不多:
1. 在美國本土有19個以上的數據中心,其余17個數據中心分布在美國以外的世界各地。
2. 每個數據中心有50萬平方英尺那么大,建造一個數據中心要花費約6億美元。
3. google數據中心是世界上最高效的設施之一,而且也非常環保,幾乎沒有碳排放。
4. 數據中心使用50到100兆瓦的電力,由于需要冷卻,通常建在便于用水的地方。
5. google服務器安置在一個一組容得下1160臺服務器的有房子那么大的標準集裝箱容器中。
三、處理流程:
1. 你寫博客、或在twitter上推微博、更新站點等諸如此類往web上添加內容的操作
2. google爬蟲(一種作為搜索引擎構件的智能代理程序)抓取你網頁的title和description、keyword等內容
(1) google bots程序沿鏈接路徑周游萬維網,如果沒有http路徑到你的站點,你的站點將不會被索引
(2) 如果你在robots.txt中設置不許索引,google bots程序將不會抓取你的網頁
(3) 如果鏈接到你站點的html鏈接上有nofollow標簽,google bots將不會從這些鏈接路徑周游到你的站點。
(4) google也能通過blog軟件或xml站點地圖找到你的網站
(5) 從pagerank越高的網站鏈接到你的網站的鏈接越多,你的網站的pagerank就越高。
(6) google爬蟲將周游所有未標注為nofollow的鏈接
3. 一旦被google爬蟲訪問到,網頁幾秒內就被索引了
(1) 網頁內容被存儲在一個倒排索引中
① 網頁標題和鏈接數據被保存在一個索引中,用于廣度優先搜索
② 網頁內容保存在另一個索引中,以用于檢索頻率不高的長尾、個性化、深度優先搜索
(2) 當你用google搜索時,你并沒有在檢索時時更新的萬維網,而是在檢索google的緩存,google定期更新其索引庫,在twitter實時搜索等的競爭下,google的索引庫更新周期趨短。
4. google基于鏈接評估域名和網頁的總體pagerank值。
5. 檢查網頁以防止作弊行為
(1) google的搜索質量和反垃圾信息審查和優化算法
(2) 1萬多遠程測試用戶評價搜索結果的質量
(3) google征請用戶對有pagerank訛詐嫌疑的垃圾信息進行舉報
(4) google接到 (美國)數字千年版權法案的通知,要求google把盜版行為記錄備案
6. 在對頁面做了損害分析后,現在每個頁面都有很多用于輔助用戶搜索的數據片(比如檢索關鍵詞)反向引用著它
7. 用戶發出搜索請求
(1)google搜索質量工程師patrick riley:在大多數google搜索中,你的搜索處于許多并行的控制過程或google實驗室的創新項目組過程中,可以說每一個查詢請求都會參與一些google的創意實驗。
8. google會用同義詞匹配與你的搜索關鍵詞語義相近的查詢結果
9. 生成初步的查詢結果
(1) 也許google宣言能返回成千上萬數量無限的查詢結果,但一般只顯示不到1000條的查詢結果,出于“少則得,多則惑”的考慮。
(2) 對查詢結果做本地化處理,本土站點在查詢結果中優先出現
10. 對查詢結果集按權威性和pagerank進行排序,重復的查詢結果被剔除。
(1) google根據關鍵詞、廣告類型、用戶所處位置找出相關的被競價拍賣的關鍵詞廣告
(2) 關鍵詞廣告必須遵守當地法律條文
① 廣告業主的非法廣告將被取締
② 如果關鍵詞的搜索流量過低或關鍵詞廣告點擊量偏低,則會被自動禁用
③ 出于商業策略,像亞馬遜這樣的客戶會給予優惠折扣。
(3) 關鍵詞相關廣告按收益潛力(對關鍵詞進行競價拍賣后的廣告質量不斷進行評估)排序
(4) 對廣告業主來說廣告內容一般都是固定的,但有時使用動態關鍵詞使關鍵詞廣告與搜索關鍵詞相關度更高
①一些廣告本身允許增加易變的附屬信息,比如網站鏈接、電話號碼、產品鏈接、地址等
(5) 當廣告擁有了相當高的點擊率,則會顯示在搜索結果列表的上方,以使其更顯眼。
(6) 其余的廣告依序顯示在相應的位置
11. 對查詢結果進行過濾處理
(1) 對通常的查詢(比如在google首頁上發出的搜索請求),google會把相關的專題性垂直搜索結果(比如新聞、購物、視頻、書籍、地圖等)也加到返回的查詢結果中
(2) 個性化方面:用戶訪問過的網站在查詢結果列表中會更靠上
(3) 大量使用錨點的網站有可能被從查詢結果中刪除
(4) 搜索結果集的聚簇性:如果網頁被其他高pagerank的網站引用,則網頁的重要性會大大提高。
(5) 趨勢分析:對搜索流量爆增或有大量新聞的搜索關鍵詞,google會在新的查詢結果中增加額外的pagerank權值。(google有反映關鍵詞搜索流量的google趨勢專題頁面)
(6) 同一個域名下的多個網頁如果具有相同的pagerank會被歸為一組。
12. 最終返回給瀏覽器端的用戶一個人性化的、布局良好的、查詢結果和廣告涇渭分明的有機查詢結果頁面。
所有這些步驟在總共不到1秒的響應時間內完成,每天3億次的點擊量給google帶來了超過200億美元的年收入。
來源:google搜索引擎的工作原理

