【正文】
基本字典中有140萬(wàn)個(gè)固定詞匯,不在基本字典中的詞匯寫(xiě)入日志,而不是共享字典。把文檔裝入barrel建立索引—分析完一篇文檔,之后把該文檔裝入barrel中,用內(nèi)存中的hash表—字典,每個(gè)詞匯被轉(zhuǎn)換成一個(gè)wordID。 —任何運(yùn)行在整個(gè)Web上的分析器必須能夠處理可能包含錯(cuò)誤的大型集合。因?yàn)榫W(wǎng)頁(yè)和服務(wù)器的種類(lèi)繁多,實(shí)際上不在大部分Internet上運(yùn)行它就測(cè)試一個(gè)網(wǎng)頁(yè)爬行機(jī)器人是不可能。因?yàn)閿?shù)據(jù)量如此之大,還會(huì)遇到一些意想不到的事情。它用異步IO處理事件,若干請(qǐng)求隊(duì)列從一個(gè)網(wǎng)站到另一個(gè)網(wǎng)站不停的抓取網(wǎng)頁(yè)。執(zhí)行的重點(diǎn)是找DNS。每個(gè)網(wǎng)絡(luò)爬行機(jī)器人可以同時(shí)打開(kāi)300個(gè)鏈接。網(wǎng)絡(luò)爬行是一項(xiàng)非常薄弱的應(yīng)用,它需要成百上千的web服務(wù)器和各種域名服務(wù)器的參與,這些服務(wù)器不是我們系統(tǒng)所能控制的。我們綜合了這兩種方法,建立兩組反向索引barrel,一組barrels的hitlist只包含標(biāo)題和anchor hit,另一組barrel包含全部的hitlist。另一個(gè)可選方案是用文檔中該詞出現(xiàn)的次數(shù)排序。它指向由docID和它的相應(yīng)hitlist組成的doclish,這個(gè)doclist代表了所有包含該詞的文檔。更進(jìn)一步的措施是,我們不是存儲(chǔ)docID本身,而是存儲(chǔ)相對(duì)于該桶最小的docID的差。它被存在一定數(shù)量的barrel中(我們用64個(gè)barrels)。 hit表的長(zhǎng)度存儲(chǔ)在hit前。對(duì)于anchor hit八比特位置位分出4比特用來(lái)表示在anchor中的位置,4比特用于表明anchor出現(xiàn)的哈希表hash of the docID。普通hit包含其它每件事。Hit的詳細(xì)信息見(jiàn)圖3。 hit list hit list是一篇文檔中所出現(xiàn)的詞的列表,包括位置,字號(hào),大小寫(xiě)。現(xiàn)在實(shí)現(xiàn)的系統(tǒng),一臺(tái)256M內(nèi)存的機(jī)器就可以把詞典裝入到內(nèi)存中。URL分析器用這項(xiàng)技術(shù)把URL轉(zhuǎn)換成docID。還有一個(gè)文件用于把URL轉(zhuǎn)換成docID。每條記錄包括當(dāng)前文件狀態(tài),一個(gè)指向知識(shí)庫(kù)的指針,文件校驗(yàn)和,各種統(tǒng)計(jì)表。這有助于數(shù)據(jù)一致性和升級(jí)。知識(shí)庫(kù)用bzip的壓縮率接近4:1。 Figure 2. Repository Data Structure 知識(shí)庫(kù)包含每個(gè)網(wǎng)頁(yè)的全部HTML。 ,用長(zhǎng)度是64位的整型數(shù)據(jù)尋址。雖然近幾年CPU和輸入輸出速率迅速提高。排序器還給出docID和偏移量列表,建立反向索引。同時(shí)建立由docID對(duì)組成的鏈接數(shù)據(jù)庫(kù)。索引器的另一個(gè)重要功能是分析網(wǎng)頁(yè)中所有的鏈接,將有關(guān)的重要信息存在鏈接描述anchors文件中。索引器從知識(shí)庫(kù)中讀取文檔,對(duì)其解壓縮和分析。抓來(lái)的網(wǎng)頁(yè)交給存儲(chǔ)服務(wù)器storeserver。本節(jié)不討論應(yīng)用和數(shù)據(jù)結(jié)構(gòu),在后幾節(jié)中討論。 4 系統(tǒng)分析(System Anatomy)首先,我們提供高水平的有關(guān)體系結(jié)構(gòu)的討論。靈活利用這點(diǎn)可以發(fā)布任何對(duì)搜索引擎影響重大的信息,使路由阻塞,加上為牟利故意操縱搜索引擎,這些已經(jīng)成為一個(gè)嚴(yán)重的問(wèn)題。不但隱含信息的可能來(lái)源各種各樣,而且被檢測(cè)的信息也大不相同,相差可達(dá)好幾個(gè)數(shù)量級(jí)。Web中的文檔無(wú)論內(nèi)在信息還是隱含信息都存在大量的異構(gòu)性。我們強(qiáng)烈反對(duì)這種觀(guān)點(diǎn)。例如,標(biāo)準(zhǔn)向量空間模型企圖返回和查詢(xún)請(qǐng)求最相近的文檔,把查詢(xún)請(qǐng)求和文檔都看作由出現(xiàn)在它們中的詞匯組成的向量。然而大多數(shù)信息檢索系統(tǒng)研究的對(duì)象是小規(guī)模的單一的有組織結(jié)構(gòu)的集合,例如科學(xué)論文集,或相關(guān)主題的新聞故事。具有代表性的工作有,對(duì)現(xiàn)有商業(yè)搜索引擎的結(jié)果進(jìn)行傳遞,或建立小型的個(gè)性化的搜索引擎。后來(lái)出現(xiàn)了一些用于學(xué)術(shù)研究的搜索引擎,現(xiàn)在它們中的大多數(shù)被上市公司擁有。黑體大號(hào)字比其它文字更重要?,F(xiàn)在我們能抓到24‘000’000個(gè)網(wǎng)頁(yè),已經(jīng)檢索到259‘000’000多個(gè)鏈接描述文字。然而這種結(jié)果可以被挑出來(lái)的,所以此類(lèi)的問(wèn)題很少發(fā)生。有可能使返回的網(wǎng)頁(yè)不能被抓到。另外,把它和鏈接所指向的網(wǎng)頁(yè)聯(lián)系起來(lái)。如果一個(gè)網(wǎng)頁(yè)的質(zhì)量不高,或者是死鏈接,象Yahoo這樣的主頁(yè)不會(huì)鏈向它。我們還有其它的PageRank算法,見(jiàn)98頁(yè)。隨機(jī)訪(fǎng)問(wèn)一個(gè)網(wǎng)頁(yè)的可能性就是它的PageRank值。中等規(guī)模的網(wǎng)站計(jì)算26‘000’000網(wǎng)頁(yè)的PageRank值要花費(fèi)幾小時(shí)。參數(shù)d是制動(dòng)因子,使結(jié)果在0,1之間。對(duì)于Google主系統(tǒng)中的全文搜索,PageRank也幫了不少忙。我們建立了一個(gè)包含518‘000’000個(gè)超鏈接的圖,它是一個(gè)具有重要意義的樣本。 2. 系統(tǒng)特點(diǎn) Google搜索引擎有兩個(gè)重要特點(diǎn),有助于得到高精度的搜索結(jié)果。為了支持新研究,Google以壓縮的形式保存了實(shí)際所抓到的文檔。應(yīng)用對(duì)我們來(lái)說(shuō)非常重要,因?yàn)楝F(xiàn)代網(wǎng)絡(luò)系統(tǒng)中存在大量的有用數(shù)據(jù)(us because we think some of the most interesting research will involve leveraging the vast amount of usage data that is available from modern web systems)。到現(xiàn)在大多數(shù)搜索引擎被公司所有,很少技公開(kāi)術(shù)細(xì)節(jié)。 ,除了發(fā)展迅速,Web越來(lái)越商業(yè)化。高精確非常重要,甚至以響應(yīng)(系統(tǒng)能夠返回的有關(guān)文檔的總數(shù))為代價(jià)。導(dǎo)致這一問(wèn)題的主要原因是文檔的索引數(shù)目增加了好幾個(gè)數(shù)量級(jí),但是用戶(hù)能夠看的文檔數(shù)卻沒(méi)有增加。然而1997年的Web就迥然不同。對(duì)于象Google這樣的集中式系統(tǒng),采取這些措施得到了令人滿(mǎn)意的系統(tǒng)可升級(jí)性(scaling properties)。Google的設(shè)計(jì)能夠很好的升級(jí)處理海量數(shù)據(jù)集。隨著Web的不斷增長(zhǎng),這些任務(wù)變得越來(lái)越艱巨。抓網(wǎng)頁(yè)技術(shù)必須足夠快,才能跟上網(wǎng)頁(yè)變化的速度(keep them up to date)。 在1997年11月,Altavista 聲稱(chēng)它每天要處理大約20’000’000個(gè)查詢(xún)。到1994年11月,頂級(jí)的搜索引擎聲稱(chēng)可以檢索到2‘000’000(WebCrawler)至100‘000’000個(gè)網(wǎng)絡(luò)文件(來(lái)自 Search Engine Watch)。應(yīng)用超文本結(jié)構(gòu),大大提高了查詢(xún)質(zhì)量。大家認(rèn)為L(zhǎng)ist(目錄)有效地包含了大家感興趣的主題,但是它具有主觀(guān)性,建立和維護(hù)的代價(jià)高,升級(jí)慢,不能包括所有深?yuàn)W的主題。任何人都可以在網(wǎng)上隨意發(fā)布信息,如何有效地處理這些無(wú)組織的超文本集合,也是本文要關(guān)注的問(wèn)題。此外由于技術(shù)的快速發(fā)展和網(wǎng)頁(yè)的大量增加,現(xiàn)在建立一個(gè)搜索引擎和三年前完全不同。 設(shè)計(jì)搜索引擎是一項(xiàng)富有挑戰(zhàn)性的工作。這篇文章中,我們介紹了google,它是一個(gè)大型的搜索引擎(of a largescale search engine)的原型,搜索引擎在超文本中應(yīng)用廣泛。我們可以從 。在網(wǎng)絡(luò)中,盡管大型搜索引擎非常重要,但是學(xué)術(shù)界卻很少研究它。 本文將解決這個(gè)問(wèn)題,描述如何運(yùn)用超文本中的附加信息,建立一個(gè)大型實(shí)用系統(tǒng)。人們喜歡用超級(jí)鏈接來(lái)網(wǎng)上沖浪,通常都以象Yahoo這樣重要的網(wǎng)頁(yè)或搜索引擎開(kāi)始。 我們建立了一個(gè)大型搜索引擎解決了現(xiàn)有系統(tǒng)中的很多問(wèn)題。1994年,第一個(gè)Web搜索引擎,World Wide Web Worm(WWWW)[McBryan94]可以檢索到110,000個(gè)網(wǎng)頁(yè)和Web的文件。在1997年的三四月份,World Wide Web Worm 平均每天收到1500個(gè)查詢(xún)。 Google:跟上Web的步伐(Scaling with the Web)建立一個(gè)能夠和當(dāng)今web規(guī)模相適應(yīng)的搜索引擎會(huì)面臨許多挑戰(zhàn)。處理查詢(xún)必須快,達(dá)到每秒能處理成百上千個(gè)查詢(xún)(hundreds to thousands per second.)。在設(shè)計(jì)Google的過(guò)程中,我們既考慮了Web的增長(zhǎng)速度,又考慮了技術(shù)的更新。進(jìn)一步,我們希望,相對(duì)于所抓取的文本文件和HTML網(wǎng)頁(yè)的數(shù)量而言,存儲(chǔ)和建立索引的代價(jià)盡可能的?。▍⒖几戒汢)。根據(jù)Best of the Web 1994 Navigators ,“最好的導(dǎo)航服務(wù)可以使在Web上搜索任何信息都很容易(當(dāng)時(shí)所有的數(shù)據(jù)都可以被登錄)”。實(shí)際上,到1997年11月為止,四大商業(yè)搜索引擎中只有一個(gè)能夠找到它自己(搜索自己名字時(shí)返回的前十個(gè)結(jié)果中有它自己)。由于是從成千上萬(wàn)個(gè)有點(diǎn)相關(guān)的文檔中選出幾十個(gè),實(shí)際上,相關(guān)的概念就是指最好的文檔。Google既利用了鏈接結(jié)構(gòu)又用到了anchor文本()。同時(shí),搜索引擎從學(xué)術(shù)領(lǐng)域走進(jìn)商業(yè)。另一個(gè)設(shè)計(jì)目標(biāo)是給大家一個(gè)實(shí)用的系統(tǒng)。我們最后的設(shè)計(jì)目標(biāo)是建立一個(gè)體系結(jié)構(gòu)能夠支持新的關(guān)于海量Web數(shù)據(jù)的研究。我們的另一個(gè)目標(biāo)是建立一個(gè)宇宙空間實(shí)驗(yàn)室似的環(huán)境,在這里研究者甚至學(xué)生都可以對(duì)我們的海量Web數(shù)據(jù)設(shè)計(jì)或做一些實(shí)驗(yàn)。 PageRank:給網(wǎng)頁(yè)排序 Web的引用(鏈接)圖是重要的資源