- 論壇徽章:
- 0
|
6.1未來的工作大型Web搜索引擎是個復雜的系統(tǒng),還有很多事情要做。我們直接的目標是提高搜索效率,覆蓋大約100000000個網(wǎng)頁。一些簡單的改進提高了效率包括請求緩沖區(qū),巧妙地分配磁盤空間,子索引。另一個需要研究的領域是更新。我們必須有一個巧妙的算法來決定哪些舊網(wǎng)頁需要重新抓取,哪些新網(wǎng)頁需要被抓取。這個目標已經(jīng)由實現(xiàn)了。受需求驅(qū)動,用代理cache創(chuàng)建搜索數(shù)據(jù)庫是一個有前途的研究領域。我們計劃加一些簡單的已經(jīng)被商業(yè)搜索引擎支持的特征,例如布爾算術符號,否定,填充。然而另外一些應用剛剛開始探索,例如相關反饋,聚類(Google現(xiàn)在支持簡單的基于主機名的聚類)。我們還計劃支持用戶上下文(象用戶地址),結果摘要。我們正在擴大鏈接結構和鏈接文本的應用。簡單的實驗證明,通過增加用戶主頁的權重或書簽,PageRank可以個性化。對于鏈接文本,我們正在試驗用鏈接周圍的文本加入到鏈接文本。Web搜索引擎提供了豐富的研究課題。如此之多以至于我們不能在此一一列舉,因此在不久的將來,我們希望所做的工作不止本節(jié)提到的。
6.2高質(zhì)量搜索當今Web搜索引擎用戶所面臨的最大問題是搜索結果的質(zhì)量。結果常常是好笑的,并且超出用戶的眼界,他們常;倚膯蕷饫速M了寶貴的時間。例如,一個最流行的商業(yè)搜索引擎搜索“Bill Clillton”的結果是the Bill Clinton Joke of the Day: April 14, 1997。Google的 設計目標是隨著Web的快速發(fā)展提供高質(zhì)量的搜索結果,容易找到信息。為此,Google大量應用超文本信息包括鏈接結構和鏈接文本。Google還用到了相鄰性和字號信息。評價搜索引擎是困難的,我們主觀地發(fā)現(xiàn)Google的搜索質(zhì)量比當今商業(yè)搜索引擎高。通過PageRank分析鏈接結構使Google能夠評價網(wǎng)頁的質(zhì)量。用鏈接文本描述鏈接所指向的網(wǎng)頁有助于搜索引擎返回相關的結果(某種程度上提高了質(zhì)量)。最后,利用相鄰性信息大大提高了很多搜索的相關性。
6.3可升級的體系結構除了搜索質(zhì)量,Google設計成可升級的。空間和時間必須高效,處理整個Web時固定的幾個因素非常重要。實現(xiàn)Google系統(tǒng),CPU、訪存、內(nèi)存容量、磁盤尋道時間、磁盤吞吐量、磁盤容量、網(wǎng)絡IO都是瓶頸。在一些操作中,已經(jīng)改進的Google克服了一些瓶頸。Google的主要數(shù)據(jù)結構能夠有效利用存儲空間。進一步,網(wǎng)頁爬行,索引,排序已經(jīng)足夠建立大部分web索引,共24000000個網(wǎng)頁,用時不到一星期。我們希望能在一個月內(nèi)建立100000000網(wǎng)頁的索引。
6.4研究工具 Google不僅是高質(zhì)量的搜索引擎,它還是研究工具。Google搜集的數(shù)據(jù)已經(jīng)用在許多其它論文中,提交給學術會議和許多其它方式。最近的研究,例如,提出了Web查詢的局限性,不需要網(wǎng)絡就可以回答。這說明Google不僅是重要的研究工具,而且必不可少,應用廣泛。我們希望Google是全世界研究者的資源,帶動搜索引擎技術的更新?lián)Q代。 7致謝 Scott Hassan and Alan Steremberg評價了Google的改進。他們的才智無可替代,作者由衷地感謝他們。感謝Hector Garcia-Molina, Rajeev Motwani, Jeff Ullman, and Terry Winograd和全部WebBase開發(fā)組的支持和富有深刻見解的討論。最后感謝IBM,Intel,Sun和投資者的慷慨支持,為我們提供設備。這里所描述的研究是Stanford綜合數(shù)字圖書館計劃的一部分,由國家科學自然基金支持,合作協(xié)議號IRI-9411306。DARPA ,NASA,Interva研究,Stanford數(shù)字圖書館計劃的工業(yè)合作伙伴也為這項合作協(xié)議提供了資金。參考文獻 ?
Google的設計目標是可升級到10億網(wǎng)頁。我們的磁盤和機器大概能處理這么多網(wǎng)頁。系統(tǒng)各個部分耗費的總時間是并行的和線性的。包括網(wǎng)頁爬行機器人,索引器和排序器。擴展后我們認為大多數(shù)數(shù)據(jù)結構運行良好。然而10億網(wǎng)頁接近所有常用操作系統(tǒng)的極限(我們目前運行在Solaris和Linux上)。包括主存地址,開放文件描述符的數(shù)量,網(wǎng)絡socket和帶寬,以及其它因素。我們認為當網(wǎng)頁數(shù)量大大超過10億網(wǎng)頁時,會大大增加系統(tǒng)復雜性。 9.2集中式索引體系的可升級性隨著計算機性能的提高,海量文本索引的成本比較公平。當然帶寬需求高的其它應用如視頻,越來越普遍。但是,與多媒體例如視頻相比,文本產(chǎn)品的成本低,因此文本仍然普遍。
圖2 Google系統(tǒng)的工作流程圖
(注:原圖來自Sergey Brin and Lawrence Page, The Anatomy of a Large-Scale Hypertextual. Web Search Engine, 1998.http://www-db.stanford.edu/%7Ebackrub/Google.html)
①Google使用高速的分布式爬行器(Crawler)系統(tǒng)中的漫游遍歷器(Googlebot)定時地遍歷網(wǎng)頁,將遍歷到的網(wǎng)頁送到存儲服務器(Store Server)中。
②存儲服務器使用zlib格式壓縮軟件將這些網(wǎng)頁進行無損壓縮處理后存入數(shù)據(jù)庫Repository中。Repository獲得了每個網(wǎng)頁的完全Html代碼后,對其壓縮后的網(wǎng)頁及URL進行分析,記錄下網(wǎng)頁長度、URL、URL長度和網(wǎng)頁內(nèi)容,并賦予每個網(wǎng)頁一個文檔號(docID),以便當系統(tǒng)出現(xiàn)故障的時候,可以及時完整地進行網(wǎng)頁的數(shù)據(jù)恢復。
③索引器(Indexer)從Repository中讀取數(shù)據(jù),以后做以下四步工作:
④(a)將讀取的數(shù)據(jù)解壓縮后進行分析,它將網(wǎng)頁中每個有意義的詞進行統(tǒng)計后,轉(zhuǎn)化為關鍵詞(wordID)的若干索引項(Hits),生成索引項列表,該列表包括關鍵詞、關鍵詞的位置、關鍵詞的大小和大小寫狀態(tài)等。索引項列表被存入到數(shù)據(jù)桶(Barrels)中,并生成以文檔號(docID)部分排序的順排檔索引。
索引項根據(jù)其重要程度分為兩種:當索引項中的關鍵詞出現(xiàn)在URL、標題、錨文本(Anchor Text)和標簽中時,表示該索引項比較重要,稱為特殊索引項(Fancy Hits);其余情況則稱為普通索引項(Plain Hits)。在系統(tǒng)中每個Hit用兩個字節(jié)(byte)存儲結構表示:特殊索引項用1位(bit)表示大小寫,用二進制代碼111(占3位)表示是特殊索引項,其余12位有4位表示特殊索引項的類型(即hit是出現(xiàn)在URL、標題、鏈接結點還是標簽中),剩下8位表示hit在網(wǎng)頁中的具體位置;普通索引項是用1位表示大小寫,3位表示字體大小,其余12位表示在網(wǎng)頁中的具體位置。
順排檔索引和Hit的存儲結構如圖3所示。
圖3 順排檔索引和Hit的存儲結構
值得注意的是,當特殊索引項來自Anchor Text時,特殊索引項用來表示位置的信息(8位)將分為兩部分:4位表示Anchor Text出現(xiàn)的具體位置,另4位則用來與表示Anchor Text所鏈接網(wǎng)頁的docID相連接,這個docID是由URL Resolver經(jīng)過轉(zhuǎn)化存入順排檔索引的。
(b)索引器除了對網(wǎng)頁中有意義的詞進行分析外,還分析網(wǎng)頁的所有超文本鏈接,將其Anchor Text、URL指向等關鍵信息存入到Anchor文檔庫中。
(c)索引器生成一個索引詞表(Lexicon),它包括兩個部分:關鍵詞的列表和指針列表,用于倒排檔文檔相連接(如圖3所示)。
(d)索引器還將分析過的網(wǎng)頁編排成一個與Repository相連接的文檔索引(Document Index),并記錄下網(wǎng)頁的URL和標題,以便可以準確查找出在Repository中存儲的原網(wǎng)頁內(nèi)容。而且把沒有分析的網(wǎng)頁傳給URL Server,以便在下一次工作流程中進行索引分析。
⑤URL分析器(URL Resolver)讀取Anchor文檔中的信息,然后做⑥中的工作。
⑥(a)將其錨文本(Anchor Text)所指向的URL轉(zhuǎn)換成網(wǎng)頁的docID;(b)將該docID與原網(wǎng)頁的docID形成“鏈接對”,存入Link數(shù)據(jù)庫中;(c)將Anchor Text指向的網(wǎng)頁的docID與順排檔特殊索引項Anchor Hits相連接。
⑦數(shù)據(jù)庫Link記錄了網(wǎng)頁的鏈接關系,用來計算網(wǎng)頁的PageRank值。
⑧文檔索引(Document Index)把沒有進行索引分析的網(wǎng)頁傳遞給URL Server,URL Server則向Crawler提供待遍歷的URL,這樣,這些未被索引的網(wǎng)頁在下一次工作流程中將被索引分析。
⑨排序器(Sorter)對數(shù)據(jù)桶(Barrels)的順排檔索引重新進行排序,生成以關鍵詞(wordID)為索引的倒排檔索引。倒排檔索引結構如圖4所示:
圖4 倒排檔索引結構
⑩將生成的倒排檔索引與先前由索引器產(chǎn)生的索引詞表(Lexicon)相連接產(chǎn)生一個新的索引詞表供搜索器(Searcher)使用。搜索器的功能是由網(wǎng)頁服務器實現(xiàn)的,根據(jù)新產(chǎn)生的索引詞表結合上述的文檔索引(Document Index)和Link數(shù)據(jù)庫計算的網(wǎng)頁PageRank值來匹配檢索。
在執(zhí)行檢索時,Google通常遵循以下步驟(以下所指的是單個檢索詞的情況):
(1)將檢索詞轉(zhuǎn)化成相應的wordID;
(2)利用Lexicon,檢索出包含該wordID的網(wǎng)頁的docID;
(3)根據(jù)與Lexicon相連的倒排檔索引,分析各網(wǎng)頁中的相關索引項的情況,計算各網(wǎng)頁和檢索詞的匹配程度,必要時調(diào)用順排檔索引;
(4)根據(jù)各網(wǎng)頁的匹配程度,結合根據(jù)Link產(chǎn)生的相應網(wǎng)頁的PageRank情況,對檢索結果進行排序;
(5)調(diào)用Document Index中的docID及其相應的URL,將排序結果生成檢索結果的最終列表,提供給檢索用戶。
用戶檢索包含多個檢索詞的情況與以上單個檢索詞的情況類似:先做單個檢索詞的檢索,然后根據(jù)檢索式中檢索符號的要求進行必要的布爾操作或其他操作。 |
|