|
|
我們遇到的最常見的問題之一是“Google是如何判定哪個結(jié)果出現(xiàn)在搜索結(jié)果的前茅?”,Matt Cutts給我們簡單地揭示了如何抓取、收錄和給網(wǎng)頁評級。
抓取和收錄 當你看到出現(xiàn)在Google的搜索結(jié)果的那個網(wǎng)頁之前,Google在后臺已經(jīng)做了許多步驟。Google的第一步是抓取和收錄互聯(lián)網(wǎng)上的數(shù)十億的網(wǎng)頁,這個工作時由Google的機器人Googlebot來完成的,它瀏覽網(wǎng)絡(luò)服務(wù)器抓取文件。 抓取的程序并不是漫無目的地在互聯(lián)網(wǎng)上瞎逛,它訪問服務(wù)器的特定的網(wǎng)頁,然后掃描網(wǎng)頁上的超文本鏈接,如果有新的文件也是這樣抓取得;蜘蛛程序給每個得到的網(wǎng)頁一個號碼,這個號碼指向它抓取的網(wǎng)頁。
蜘蛛程序抓取了很多的網(wǎng)頁,但這些網(wǎng)頁還不是便于搜索的。如果沒有一個索引,你要查詢一個詞,比如“國內(nèi)戰(zhàn)爭”,Google的服務(wù)器每次都要讀取每一個文件的所有內(nèi)容。
因此,第二步就是建立索引。我們不是去掃描每一個文件的所有內(nèi)容,我們巧妙地進行數(shù)據(jù)的“轉(zhuǎn)換”,列出每一個文件所包含的特定的詞,例如,“國內(nèi)”這個詞可能出現(xiàn)在文件3,8,22,56,68和92當中,而“戰(zhàn)爭”這個詞出現(xiàn)在文件2,8,15,22,68和77中。
建立好索引之后,我們就可以開始對網(wǎng)頁進行評級,決定網(wǎng)頁的相關(guān)程度。假設(shè)有人在Google的搜索欄輸入“國內(nèi)戰(zhàn)爭”進行查詢,為了提交搜索結(jié)果和對結(jié)果進行評分,我們要做兩件事:
1. 找到包含用戶查詢的詞的網(wǎng)頁 2. 給符合的網(wǎng)頁按照相關(guān)程度進行評級 Google開發(fā)出一個有趣的技巧來加速第一步:Google不是把整個索引存儲在一臺功能強大的計算機上,而是用千百個計算機來存儲這些信息。因為任務(wù)被分解到許多的計算機,可以更快地找到所需的答案。 詳細解釋一下,假設(shè)一本書的目錄有30頁,如果一個人要在目錄中查尋資料,每次查詢都要花幾秒鐘;如果用30個人每人查詢一頁目錄,顯然要比一個人查詢的速度快很多。同樣的,Google將數(shù)據(jù)分別存儲在許多計算機上,這樣搜索的速度會大大加快。
我們是如何找到那些包含用戶搜索的詞的網(wǎng)頁呢?回到“國內(nèi)戰(zhàn)爭”的例子,“國內(nèi)”這個詞出現(xiàn)在文件3,8, 22, 56, 68 和92; “戰(zhàn)爭”出現(xiàn)在文件2, 8, 15, 22, 68和77,記下同時出現(xiàn)這兩個詞的文件。
國內(nèi) 3 8 22 56 68 92 戰(zhàn)爭 2 8 15 22 68 77 國內(nèi) 戰(zhàn)爭 8 22 68
這樣我們可以清楚地發(fā)現(xiàn)“國內(nèi)”、“戰(zhàn)爭”這兩個詞同時出現(xiàn)的在三個文件里 (8, 22, 和68)。 含有這幾個字的列表叫做“位置列表”,搜索文件包含這兩個字,這叫做交叉搜索位置列表。(較快的交叉搜索的方法是同時進行搜索,如果一個搜索列表,22到68,那另一個就可以開始搜索其他的) 對結(jié)果進行評級 現(xiàn)在我們已經(jīng)有了一些包含用戶搜索的關(guān)鍵詞的網(wǎng)頁,我們要對它們的相關(guān)程度進行評級。Google用許多參數(shù)進行評級。這當中PR算法是眾所周知的。PageRank評估兩個因素:有多少個網(wǎng)頁鏈接到這個網(wǎng)頁,這些鏈接網(wǎng)頁的網(wǎng)站的質(zhì)量如何。通過PageRank,五六個高質(zhì)量的站點的鏈接,比如www.cnn.com和www.nytimes.com比其他較差的網(wǎng)站的鏈接要有價值的多。
但是除了PageRank,我們還用許多其它的參數(shù)來進行評級。例如,如果一個文件包含“國內(nèi)”和“戰(zhàn)爭”這兩個詞排在一起,這個文件可能比一個討論革命戰(zhàn)爭的文件(在文件的某個地方使用“國內(nèi)”)的相關(guān)程度高。還比如假設(shè)一個網(wǎng)頁的標題是“國內(nèi)戰(zhàn)爭”,比另一個標題為“19世紀美國服裝”的網(wǎng)頁相關(guān)度高得多。同樣的,如果“國內(nèi)戰(zhàn)爭”在網(wǎng)頁中出現(xiàn)多次的網(wǎng)頁比只出現(xiàn)一個的網(wǎng)頁相關(guān)的程度也要高。假設(shè)你是搜索引擎,選擇一個詞查詢,比如:國內(nèi)戰(zhàn)爭或回收,在Google上查詢,從結(jié)果中挑選三到四頁打印出來。從每一張打印的頁面上找出你的搜索語句的每一個字然后用熒光筆標出來,然后把這幾頁貼在墻上,退后幾步瞇著眼看,當你不知道頁面的內(nèi)容,僅僅能看到那些有顏色的方塊,你認為那一頁是最相關(guān)的呢?是不是有著大的標題和多次重復(fù)出現(xiàn)的顏色代表了較高的相關(guān)程度?你喜歡這些字出現(xiàn)在頂端還是底部?這些字出現(xiàn)的頻率如何?這也是搜索引擎如何判斷網(wǎng)頁的相關(guān)程度。
原則上,Google總是試圖找出可靠的和相關(guān)的網(wǎng)頁。如果兩個網(wǎng)頁按照查詢的語句大致有相同的信息,Google通常選擇比較信得過的網(wǎng)站的網(wǎng)頁。當然,如果有一些因素表明這個網(wǎng)站的網(wǎng)頁相關(guān)度更高,Google經(jīng)常也選擇PageRank較低的網(wǎng)站。
一旦Google完成了文件的列表和它們的評分,就給出得分最高的網(wǎng)頁。Google同時從網(wǎng)頁中摘錄一小段包含查詢的關(guān)鍵詞的句子;給出網(wǎng)頁的鏈接。
對于這樣的搜索工作,需要極大的數(shù)據(jù)運算量,一般說來,對于某個搜索,要有超過500臺的服務(wù)器協(xié)同工作以求得最佳匹配的結(jié)果,當然,結(jié)果會在半秒內(nèi)返回用戶。 |
|