搜索引擎原理(五) |
發(fā)布時(shí)間: 2012/9/3 11:01:42 |
形式就是q 在其中直接出現(xiàn)。不過后面我們會(huì)看到,如果一個(gè)搜索引擎就是以 百分之百滿足這種簡單的包含關(guān)系為目標(biāo),即使實(shí)現(xiàn)了也并不就達(dá)到了最好的效 果。 “列表”,這蘊(yùn)含著一種“序”(rank )。在絕大多數(shù)情況下,L 是相當(dāng)長的, 例如超過 1 萬個(gè)條目(這是和圖書館全文檢索系統(tǒng)的又一個(gè)不同,那里返回的列 表通常較短,例如幾十個(gè)條目)。這不僅是由于 Web 上的信息量大,也由于搜索 引擎的查詢方式簡單。簡單,意味著抽象;抽象,意味著有更多的具體事物可能 是它的體現(xiàn)。對于一個(gè)長長的列表,很少有用戶有耐心都審視一遍(不僅是因?yàn)?長,還因?yàn)榇蠖鄶?shù)使用搜索引擎的用戶通常都是“找到為止”,而不是“不全部找 到不罷休”,加上這個(gè)列表中和一個(gè)用戶關(guān)心的其實(shí)只占很少的比例)。有分析統(tǒng) 計(jì)表明,用戶平均察看返回結(jié)果不超過 2 頁[Baldi, et al.,2003],[Wang, et al.,2001],[單松巍,2003]。 現(xiàn)代大規(guī)模高質(zhì)量搜索引擎一般采用如圖 2-2 所示的稱之為三段式的工作流 程,即:網(wǎng)頁搜集、預(yù)處理和查詢服務(wù)。 搜集 預(yù)處理 服務(wù) 圖2-2 搜索引擎三段式工作流程 第二節(jié) 網(wǎng)頁搜集 搜索引擎這樣一個(gè)軟件系統(tǒng)應(yīng)該是何種工作方式?如果說軟件系統(tǒng)是工作 在某個(gè)數(shù)據(jù)集合上的程序的話,這個(gè)軟件系統(tǒng)操作的數(shù)據(jù)不僅包括內(nèi)容不可預(yù)測 的用戶查詢,還要包括在數(shù)量上動(dòng)態(tài)變化的海量網(wǎng)頁,并且這些網(wǎng)頁不會(huì)主動(dòng)送 到系統(tǒng)來,而是需要由系統(tǒng)去抓取。 首先,我們考慮抓取的時(shí)機(jī):事先還是即時(shí)。我們都有經(jīng)驗(yàn),在網(wǎng)絡(luò)比較暢 通的情況下,從網(wǎng)上下載一篇網(wǎng)頁大約需要 1 秒鐘左右,因此如果在用戶查詢的 時(shí)候即時(shí)去網(wǎng)上抓來成千上萬的網(wǎng)頁,一個(gè)個(gè)分析處理,和用戶的查詢匹配,不 可能滿足搜索引擎的響應(yīng)時(shí)間要求。不僅如此,這樣做的系統(tǒng)效益也不高(會(huì)重 復(fù)抓取太多的網(wǎng)頁);面對大量的用戶查詢,不可能想象每來一個(gè)查詢,系統(tǒng)就到 網(wǎng)上“搜索”一次。 因此我們看到,大規(guī)模搜索引擎服務(wù)的基礎(chǔ)應(yīng)該是一批預(yù)先搜集好的網(wǎng)頁 (直接或者間接)。這一批網(wǎng)頁如何維護(hù)?可以有兩種基本的考慮。 定期搜集,每次搜集替換上一次的內(nèi)容,我們稱之為“批量搜集”。由于每 次都是重新來一次,對于大規(guī)模搜索引擎來說,每次搜集的時(shí)間通常會(huì)花幾周。 而由于這樣做開銷較大,通常兩次搜集的間隔時(shí)間也不會(huì)很短(例如早期天網(wǎng)的 版本大約每3 個(gè)月來一次,Google 在一段時(shí)間曾是每隔28 天來一次)。這樣做的 好處是系統(tǒng)實(shí)現(xiàn)比較簡單,主要缺點(diǎn)是“時(shí)新性”(freshness)不高,還有重復(fù)搜 集所帶來的額外帶寬的消耗。 增量搜集,開始時(shí)搜集一批,往后只是(1)搜集新出現(xiàn)的網(wǎng)頁,(2 )搜集 那些在上次搜集后有過改變的網(wǎng)頁,(3)發(fā)現(xiàn)自從上次搜集后已經(jīng)不再存在了的 網(wǎng)頁,并從庫中刪除。由于除新聞網(wǎng)站外,許多網(wǎng)頁的內(nèi)容變化并不是很經(jīng)常的 ( 有 研 究 指 出 50% 網(wǎng) 頁 的 平 均 生 命 周 期 大 約 為 50 天 [Cho and Garcia-Molina,2000],[Cho,2002]),這樣做每次搜集的網(wǎng)頁量不會(huì)很大(例如我 們在 2003 年初估計(jì)中國每天有 30-50 萬變化了的網(wǎng)頁),于是可以經(jīng)常啟動(dòng)搜集 過程(例如每天)。30 萬網(wǎng)頁,一臺PC 機(jī),在一般的網(wǎng)絡(luò)條件下,半天也就搜集 完了。這樣的系統(tǒng)表現(xiàn)出來的信息時(shí)新性就會(huì)比較高,主要缺點(diǎn)是系統(tǒng)實(shí)現(xiàn)比較 復(fù)雜;這種復(fù)雜還不僅在于搜集過程,而是還在于下面要談到的建索引的過程。 上面講的是系統(tǒng)網(wǎng)頁數(shù)據(jù)庫維護(hù)的基本策略。在這兩種極端的情況之間也可 能有一些折中的方案,J. Cho 博士在這方面做過深入的研究[Cho and Garcia-Molina,2000],[Cho,2002],根據(jù)一種網(wǎng)頁變化模型和系統(tǒng)所含內(nèi)容時(shí)新性 的定義,提出了相應(yīng)優(yōu)化的網(wǎng)頁搜集策略。其中一個(gè)有趣的結(jié)論是:在系統(tǒng)搜集 能力一定的情況下,若有兩類網(wǎng)頁(例如“商業(yè)”和“教育”),它們的更新周期 差別很大(例如“商業(yè)”類網(wǎng)頁平均更新周期是“天”,而“教育”類網(wǎng)頁平均更 新周期是“月”),則系統(tǒng)應(yīng)該將注意力放在更新慢的網(wǎng)頁上[Cho and Garcia-Molina,2000],以使系統(tǒng)整體的時(shí)新性達(dá)到比較高的取值。 在具體搜集過程中,如何抓取一篇篇的網(wǎng)頁,也可以有不同的考慮。最常見 的一種是所謂“爬取”:將Web 上的網(wǎng)頁集合看成是一個(gè)有向圖,搜集過程從給 定起始 URL 集合 S (或者說“種子”)開始,沿著網(wǎng)頁中的鏈接,按照先深、先 寬、或者某種別的策略遍歷,不停的從S 中移除URL,下載相應(yīng)的網(wǎng)頁,解析出 網(wǎng)頁中的超鏈接URL,看是否已經(jīng)被訪問過,將未訪問過的那些URL 加入集合 S 。整個(gè)過程可以形象地想象為一個(gè)蜘蛛(spider)在蜘蛛網(wǎng)(Web )上爬行(crawl)。 后面我們會(huì)看到,真正的系統(tǒng)其實(shí)是多個(gè)“蜘蛛”同時(shí)在爬。 這種方式的好處除了概念很漂亮,一般實(shí)現(xiàn)起來也不困難外,還有很重要的 一條是容易通過一定的策略,使搜集到的網(wǎng)頁相對比較“重要”。前面提過,任何 1 所謂“間接”,指的是提供搜索服務(wù)的系統(tǒng)可能利用別人已經(jīng)事先抓好的數(shù)據(jù),元搜索引擎就 是如此。 本文出自:億恩科技【www.allwellnessguide.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |