中文搜索引擎技術揭密:系統架構

        互聯網發展的今天,一方面離不開其開放、共享的特性帶給人們的全新體驗,另一方面也離不開數以億計的爲其提供各類豐富內容的網絡節點。互聯網被普及前,人們查閱資料第一想到的便是擁有大量書籍資料的圖書館,到了今天很多人都會選擇一種更方便、快捷、全面、準確的方式——互聯網。而幫助你通過整個互聯網快速查找到目標信息的就是越來越被重視的搜索引擎。
前言

互 聯網在近10年的得到飛速發展,互聯網正在逐漸深入人們的生活,改變人們的生活。互聯網經濟也經歷了風風雨雨,從緩慢起步到急速膨脹,從泡沫破滅到逐步回 暖;從“網絡廣告”到“拇指經濟”,從“網絡遊戲”到“搜索力經濟”。目前,搜索引擎成爲最受人們關注的焦點之一,也成爲億萬富翁的製造搖籃。越來越多的 公司都希望在搜索引擎這座金礦中挖到筐金子,其中許多人會選擇擁有自己的搜索引擎。國內著名搜索引擎公司百度([url]http://www.baidu.com[/url])總裁李彥宏說:搜索引擎不是人人都能做的領域,進入的門檻比較高。
搜索引擎的門檻到底有多高?搜索引擎的門檻主要是技術門檻,包括網頁數據的快速採集、海量數據的索引和存儲、搜索結果的相關性排序、搜索效率的毫秒級要 求、分佈式處理和負載均衡、自然語言的理解技術等等,這些都是搜索引擎的門檻。對於一個複雜的系統來說,各方面的技術固然重要,但整個系統的架構設計也同 樣不可忽視,搜索引擎也不例外。

搜索引擎技術和分類

搜索引擎的技術基礎是全文檢索技術,從20世紀60年代,國外對全文檢索技術就開始有研究。全文檢索通常指文本全文檢索,包括信息的存儲、組織、表現、查 詢、存取等各個方面,其核心爲文本信息的索引和檢索,一般用於企事業單位。隨着互聯網信息的發展,搜索引擎在全文檢索技術上逐漸發展起來,並得到廣泛的應 用,但搜索引擎還是不同於全文檢索。搜索引擎和常規意義上的全文檢索主要區別有以下幾點:
  1. 數據量 傳統全文檢索系統面向的是企業本身的數據或者和企業相關的數據,一般索引庫規模多在GB級,數據量大的也只有幾百萬條;但互聯網網頁搜索需要處理幾十億的網頁,搜索引擎的策略都是採用服務器羣集和分佈式計算技術。
  2. 內容相關性 , 信息太多,查準和排序就特別重要,Google等搜索引擎採用網頁鏈接分析技術,根據互聯網上網頁被鏈接次數作爲重要性評判的依據;但全文檢索的數據源中相互鏈接的程度並不高,不能作爲判別重要性的依據,只能基於內容的相關性排序。
  3. 安全性. 互聯網搜索引擎的數據來源都是互聯網上公開的信息,而且除了文本正文以外,其它信息都不太重要;但企業全文檢索的數據源都是企業內部的信息,有等級、權限 等限制,對查詢方式也有更嚴格的要求,因此其數據一般會安全和集中地存放在數據倉庫中以保證數據安全和管理的要求。
  4. 個性化和智能化. 搜索引擎面向的是互聯網訪問者,由於其數據量和客戶數量的限制,自然語言處理技術、知識檢索、知識挖掘等計算密集的智能計算技術很難應用,這也是目前搜索引擎技術努力的方向;而全文檢索數據量小,檢索需求明確,客戶量少,在智能化和個性可走得更遠。
搜索引擎與全文檢索除了以上的區別外,還結合互聯網信息的特點形成了三個不同的類型:
  • 全文檢索搜索引擎 :全文搜索引擎是名副其實的搜索引擎,國外具代表性的有Google ([url]http://www.google.com[/url]) 、yahoo([url]http://search.yahoo.com[/url]) 、AllTheWeb ([url]http://www.alltheweb.com[/url] ) 等,國內著名的有百度([url]http://www.Baidu.com[/url])、中搜([url]http://www.zhongsou.com[/url])。它們都是通過從互聯網上提取的各個網站的信息(以網頁文字爲主)而建立的數據庫,檢索與用戶查詢條件匹配的相關記錄,然後按一定的排列順序將結果返回給用戶,也是目前常規意義上的搜索引擎。
  • 目錄搜索引擎 :目錄索引雖然有搜索功能,但在嚴格意義上算不上是真正的搜索引擎,僅僅是按目錄分類的網站鏈接列表而已。用戶完全可以不用進行關鍵詞查詢,僅靠分類目錄也可找到需要的信息。國外比較著名的目錄索引搜索引擎有yahoo([url]http://www.yahoo.com[/url])Open Directory Project(DMOZ)([url]http://www.dmoz.com/[/url])、LookSmart([url]http://www.looksmart.com[/url])等。國內的搜狐([url]http://www.sohu.com[/url])、新浪([url]http://www.sina.com[/url])、網易([url]http://www.163.com[/url])搜索也都具有這一類功能。
  • 元搜索引擎 :元搜索引擎在接受用戶查詢請求時,同時在其它多個引擎上進行搜索,並將結果返回給用戶。著名的元搜索引擎有Dogpile([url]http://www.dogpile.com[/url])、Vivisimo([url]http://www.vivisimo.com[/url])等,國內元搜索引擎中具代表性的有搜星搜索引擎([url]http://www.soseen.com/[/url]),優客搜索([url]http://www.yok.com[/url])。在搜索結果排列方面,有的直接按來源引擎排列搜索結果,如Dogpile,有的則按自定的規則將結果重新排列組合,如Vivisimo。
  • 其他的像新浪([url]http://search.sina.com.cn[/url]) 、網易([url]http://search.163.com[/url])、 A9([url]http://www.A9.com[/url]) 等搜索引擎都是調用其它全文檢索搜索引擎,或者在其搜索結果的基礎上做了二次開發。

搜索引擎的系統架構


這裏主要針對全文檢索搜索引擎的系統架構進行說明,下文中提到的搜索引擎如果沒有特殊說明也是指全文檢索搜索引擎。搜索引擎的實現原理,可以看作四步:從互聯網上抓取網頁→建立索引數據庫→在索引數據庫中搜索→對搜索結果進行處理和排序。
  1. 從互聯網上抓取網頁. 利用能夠從互聯網上自動收集網頁的網絡蜘蛛程序,自動訪問互聯網,並沿着任何網頁中的所有URL爬到其它網頁,重複這過程,並把爬過的所有網頁收集到服務器中。
  2. 建立索引數據庫 . 由索引系統程序對收集回來的網頁進行分析,提取相關網頁信息(包括網頁所在URL、編碼類型、頁面內容包含的關鍵詞、關鍵詞位置、生成時間、大小、與其它 網頁的鏈接關係等),根據一定的相關度算法進行大量複雜計算,得到每一個網頁針對頁面內容中及超鏈中每一個關鍵詞的相關度(或重要性),然後用這些相關信 息建立網頁索引數據庫。
  3. 在索引數據庫中搜索 . 當用戶輸入關鍵詞搜索後,分解搜索請求,由搜索系統程序從網頁索引數據庫中找到符合該關鍵詞的所有相關網頁。
  4. 對搜索結果進行處理排序 . 所有相關網頁針對該關鍵詞的相關信息在索引庫中都有記錄,只需綜合相關信息和網頁級別形成相關度數值,然後進行排序,相關度越高,排名越靠前。最後由頁面生成系統將搜索結果的鏈接地址和頁面內容摘要等內容組織起來返回給用戶。 下圖是一個典型的搜索引擎系統架構圖,搜索引擎的各部分都會相互交錯相互依賴。其處理流程按照如下描述:
Search
“網絡蜘蛛”從互聯網上抓取網頁,把網頁送入“網頁數據庫”,從網頁中“提取URL”,把URL送入“URL數據庫”,“蜘蛛控制”得到網頁的URL,控制“網絡蜘蛛”抓取其它網頁,反覆循環直到把所有的網頁抓取完成。 系統從“網頁數據庫”中得到文本信息,送入“文本索引”模塊建立索引,形成“索引數據庫”。同時進行“鏈接信息提取”,把鏈接信息(包括錨文本、鏈接本身等信息)送入“鏈接數據庫”,爲“網頁評級”提供依據。 “用戶”通過提交查詢請求給“查詢服務器”,服務器在“索引數據庫”中進行相關網頁的查找,同時“網頁評級”把查詢請求和鏈接信息結合起來對搜索結果進行相關度的評價,通過“查詢服務器”按照相關度進行排序,並提取關鍵詞的內容摘要,組織最後的頁面返回給“用戶”。

搜索引擎的索引和搜索


對於網絡蜘蛛技術和排序技術請參考作者其它文章[1][2],這裏以Google搜索引擎爲例主要介紹搜索引擎的數據索引和搜索過程。
數據的索引分爲三個步驟:網頁內容的提取、詞的識別、標引庫的建立。
互聯網上大部分信息都是以HTML格式存在,對於索引來說,只處理文本信息。因此需要把網頁中文本內容提取出來,過濾掉一些腳本標示符和一些無用的廣告信 息,同時記錄文本的版面格式信息[1]。詞的識別是搜索引擎中非常關鍵的一部分,通過字典文件對網頁內的詞進行識別。對於西文信息來說,需要識別詞的不同 形式,例如:單複數、過去式、組合詞、詞根等,對於一些亞洲語言(中文、日文、韓文等)需要進行分詞處理[3]。識別出網頁中的每個詞,並分配唯一的wordID號,用於爲數據索引中的標引模塊服務。
標引庫的建立是數據索引中結構最複雜的一部分。一般需要建立兩種標引:文檔標引和關鍵詞標引。 文檔標引分配每個網頁一個唯一的docID號,根據docID標引出在這個網頁中出現過多少過wordID,每個wordID出現的次數、位置、大小寫格 式等,形成docID對應wordID的數據列表;關鍵詞標引其實是對文檔標引的逆標引,根據wordID標引出這個詞出現在那些網頁(用wordID表 示),出現在每個網頁的次數、位置、大小寫格式等,形成wordID對應docID的列表。
關於索引數據的詳細數據結構,有興趣的朋友可以參看文獻[4]。
搜索的處理過程是對用戶的搜索請求進行滿足的過程,通過用戶輸入搜索關鍵字,搜索服務器對應關鍵詞字典,把搜索關鍵詞轉化爲wordID,然後在標引庫中 得到docID列表,對docID列表進行掃描和wordID的匹配,提取滿足條件的網頁,然後計算網頁和關鍵詞的相關度,根據相關度的數值返回前K篇結 果(不同的搜索引擎每頁的搜索結果數不同)返回給用戶。如果用戶查看的第二頁或者第多少頁,重新進行搜索,把排序結果中在第K+1到2*K的網頁組織返回 給用戶。其處理流程如下圖所示:
Frame2

搜索引擎細化趨勢


隨着搜索引擎市場空間越來越大,搜索引擎也分得越來越細。互聯網沒有國界,百度總裁李彥宏所講:搜索引擎市場是贏家通吃的市場。如果一個搜索引擎要想在搜 索市場上有自己的一席之地,必須擁有自己的特色。而且,數以億計的網民,搜索需求不可能都一樣,不同類型的用戶需要不同類型的搜索引擎,網頁搜索只是搜索 需求中的一種,這就決定了搜索引擎會不斷細化,各具特色的搜索引擎也陸續出現。
從技術上講,各種搜索引擎都具有類似的系統架構,其不同在於搜索的數據源的不同。除了上面提到的網頁搜索引擎以外,下面列舉幾個典型的搜索引擎:
  • 新聞搜索引擎 . 看新聞是許多網民上網的主要目的,新聞搜索也就成了查看新聞的重要工具。新聞搜索引擎實現的過程比較簡單,一般是掃描國內外有名的新聞網站,抓取新聞網 頁,建立自己的新聞數據庫,然後提供搜索,只是對新聞網頁抓取的頻率要求很高,有的需要做到幾分鐘掃描一次。現在許多大型的網頁搜索引擎都提供相應的新聞 搜索功能,如:Google新聞搜索([url]http://news.google.com[/url]),中搜新聞搜索([url]http://news.zhongsou.com[/url]),百度新聞搜索([url]http://news.baidu.com[/url])等。
  • 音樂搜索引擎 . 有了互聯網以後,音樂得到了廣泛的傳播,對於喜歡音樂的網民來說,音樂搜索引擎成了最鍾愛的工具。音樂搜索引擎需要監控互聯網上大型的音樂網站,抓取其音樂數據的描述信息,形成自己的數據庫,音樂的下載和試聽都會在其原來的音樂網站上進行。目前有:搜刮網([url]http://www.sougua.com[/url]),百度mp3搜索([url]http://mp3.baidu.com[/url]),1234567搜索([url]http://www.1234567.com[/url])等。
  • 圖像搜索引擎 . 通過圖像搜索引擎可以找到自己感興趣的圖片鏈接,各大搜索引擎也提供了圖像搜索功能。圖像文件本身不能夠被搜索引擎索引,但搜索引擎可以通過鏈接文本分析和圖片註解等得到圖片的信息。目前有:Google圖像搜索([url]http://p_w_picpaths.google.com/[/url]),VisionNext搜索([url]http://www.eefind.com[/url]),百度圖像搜索([url]http://p_w_picpaths.baidu.com[/url])等。
  • 商機搜索引擎 . 電子商務一直是互聯網的熱點,商機搜索對電子商務的發展也起到了巨大的推動作用,商機搜索讓互聯網經濟和傳統經營緊密結合在一起,給傳統的企業提供了一個 新的銷售模式。商機搜索引擎,通過抓取電子商務網站的商品信息和其他商業信息,給訪問者提供統一的搜索平臺。目前有:soaso價格搜索引擎([url]http://www.soaso.com[/url]),8848購物搜索([url]http://www.8848.com[/url]),阿里巴巴商機搜索([url]http://www.alibaba.com[/url])等。
其他特色的搜索引擎還有專利搜索、軟件搜索、ftp搜索、遊戲搜索、法律搜索等等
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章