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