互聯網發展的今天,一方面離不開其開放、共享的特性帶給人們的全新(xīn)體(tǐ)驗,另一方面也離不開數以億計的為(wèi)其提供各類豐富内容的網絡節點。互聯網被普及前,人們查閱資料第一想到的便是擁有(yǒu)大量書籍資料的圖書館,到了今天你怎麽想?或許今天的很(hěn)多(duō)人都會選擇一種更方便、快捷、全面、準确的方式——互聯網。你可(kě)以坐(zuò)在家裏輕點幾下鼠标就查到想要的各類信息,這在互聯網沒有(yǒu)被普及之前,還都僅是一個夢而已,但如今這一切已成為(wèi)了可(kě)能(néng)。
而幫助你通過整個互聯網快速查找到目标信息的就是越來越被重視的搜索引擎。有(yǒu)關搜索引擎的技(jì )術資料網絡上已經很(hěn)多(duō),關于搜索引擎經濟的多(duō)方面報道各大媒體(tǐ)也都已經鋪天蓋地,因此在這裏小(xiǎo)編并不想過多(duō)的談論這些方面的感受,隻想在本次“中(zhōng)文(wén)搜索引擎技(jì )術揭密”系列文(wén)章全部完成之際來聊一下搜索引擎對小(xiǎo)編的深遠(yuǎn)影響。
記得2000年左右網絡上開始大量出現免費個人主頁(yè)空間,當時的小(xiǎo)編還隻是一個剛剛進入IT圈的小(xiǎo)朋友,看着這些空間那叫一個口水橫流,于是乎立刻申請了一個。又(yòu)經過了一個多(duō)月的刻苦修煉和先後三次的改版,自己有(yǒu)生以來的第一個個人主頁(yè)誕生了。可(kě)看着每天寥寥無幾的訪問量,心裏那叫一個難受,可(kě)一時間也想不到好辦(bàn)法解決問題。突然有(yǒu)天發現一篇介紹如何在搜索引擎注冊自己個人網站的文(wén)章,于是小(xiǎo)編就照着文(wén)章所講的分(fēn)别在SOHU、網易等搜索引擎的相關分(fēn)類目錄下注冊了自己的個人主頁(yè)。直至今日,小(xiǎo)編才确切的知道了當時盛行的搜索引擎都屬“目錄搜索引擎”。這實際上是小(xiǎo)編第一次使用(yòng)、認識搜索引擎,再後來通過每天個人主頁(yè)不斷上升的數字小(xiǎo)編感覺到了搜索引擎的神奇。
其實正是由于搜索引擎,才使小(xiǎo)編的個人主頁(yè)被更多(duō)的人所熟識,以至于後來有(yǒu)多(duō)份工(gōng)作(zuò)都是因為(wèi)這個個人主頁(yè)所帶來的機會。其實這些經曆或許很(hěn)多(duō)人都有(yǒu)切身的體(tǐ)會,同樣也有(yǒu)很(hěn)多(duō)人因此去全身投入到互聯網工(gōng)作(zuò)中(zhōng)。這正像那句話講的“世界真奇妙,不看不知道”,小(xiǎo)編在此多(duō)加一句“到底怎麽看,搜索引擎幫你忙!”
互聯網在近10年的得到飛速發展,互聯網正在逐漸深入人們的生活,改變人們的生活。互聯網經濟也經曆了風風雨雨,從緩慢起步到急速膨脹,從泡沫破滅到逐步回暖;從“網絡廣告”到“拇指經濟”,從“網絡遊戲”到“搜索力經濟”。目前,搜索引擎成為(wèi)最受人們關注的焦點之一,也成為(wèi)億萬富翁的制造搖籃。越來越多(duō)的公(gōng)司都希望在搜索引擎這座金礦中(zhōng)挖到筐金子,其中(zhōng)許多(duō)人會選擇擁有(yǒu)自己的搜索引擎。國(guó)内著名(míng)搜索引擎公(gōng)司百度(http://www.baidu.com)總裁李彥宏說:搜索引擎不是人人都能(néng)做的領域,進入的門檻比較高。
搜索引擎的門檻到底有(yǒu)多(duō)高?搜索引擎的門檻主要是技(jì )術門檻,包括網頁(yè)數據的快速采集、海量數據的索引和存儲、搜索結果的相關性排序、搜索效率的毫秒(miǎo)級要求、分(fēn)布式處理(lǐ)和負載均衡、自然語言的理(lǐ)解技(jì )術等等,這些都是搜索引擎的門檻。對于一個複雜的系統來說,各方面的技(jì )術固然重要,但整個系統的架構設計也同樣不可(kě)忽視,搜索引擎也不例外。
搜索引擎技(jì )術和分(fēn)類
搜索引擎的技(jì )術基礎是全文(wén)檢索技(jì )術,從20世紀60年代,國(guó)外對全文(wén)檢索技(jì )術就開始有(yǒu)研究。全文(wén)檢索通常指文(wén)本全文(wén)檢索,包括信息的存儲、組織、表現、查詢、存取等各個方面,其核心為(wèi)文(wén)本信息的索引和檢索,一般用(yòng)于企事業單位。随着互聯網信息的發展,搜索引擎在全文(wén)檢索技(jì )術上逐漸發展起來,并得到廣泛的應用(yòng),但搜索引擎還是不同于全文(wén)檢索。搜索引擎和常規意義上的全文(wén)檢索主要區(qū)别有(yǒu)以下幾點:
1、數據量
傳統全文(wén)檢索系統面向的是企業本身的數據或者和企業相關的數據,一般索引庫規模多(duō)在GB級,數據量大的也隻有(yǒu)幾百萬條;但互聯網網頁(yè)搜索需要處理(lǐ)幾十億的網頁(yè),搜索引擎的策略都是采用(yòng)服務(wù)器群集和分(fēn)布式計算技(jì )術。
2、内容相關性
信息太多(duō),查準和排序就特别重要,Google等搜索引擎采用(yòng)網頁(yè)鏈接分(fēn)析技(jì )術,根據互聯網上網頁(yè)被鏈接次數作(zuò)為(wèi)重要性評判的依據;但全文(wén)檢索的數據源中(zhōng)相互鏈接的程度并不高,不能(néng)作(zuò)為(wèi)判别重要性的依據,隻能(néng)基于内容的相關性排序。
3、安(ān)全性
互聯網搜索引擎的數據來源都是互聯網上公(gōng)開的信息,而且除了文(wén)本正文(wén)以外,其它信息都不太重要;但企業全文(wén)檢索的數據源都是企業内部的信息,有(yǒu)等級、權限等限制,對查詢方式也有(yǒu)更嚴格的要求,因此其數據一般會安(ān)全和集中(zhōng)地存放在數據倉庫中(zhōng)以保證數據安(ān)全和管理(lǐ)的要求。
4、個性化和智能(néng)化
搜索引擎面向的是互聯網訪問者,由于其數據量和客戶數量的限制,自然語言處理(lǐ)技(jì )術、知識檢索、知識挖掘等計算密集的智能(néng)計算技(jì )術很(hěn)難應用(yòng),這也是目前搜索引擎技(jì )術努力的方向;而全文(wén)檢索數據量小(xiǎo),檢索需求明确,客戶量少,在智能(néng)化和個性可(kě)走得更遠(yuǎn)。
搜索引擎與全文(wén)檢索除了以上的區(qū)别外,還結合互聯網信息的特點形成了三個不同的類型:
全文(wén)檢索搜索引擎:全文(wén)搜索引擎是名(míng)副其實的搜索引擎,國(guó)外具(jù)代表性的有(yǒu)Google (http://www.google.com) 、yahoo(http://search.yahoo.com) 、AllTheWeb (http://www.alltheweb.com ) 等,國(guó)内著名(míng)的有(yǒu)百度(http://www.Baidu.com)、中(zhōng)搜(http://www.zhongsou.com)。它們都是通過從互聯網上提取的各個網站的信息(以網頁(yè)文(wén)字為(wèi)主)而建立的數據庫,檢索與用(yòng)戶查詢條件匹配的相關記錄,然後按一定的排列順序将結果返回給用(yòng)戶,也是目前常規意義上的搜索引擎。
目錄搜索引擎:目錄索引雖然有(yǒu)搜索功能(néng),但在嚴格意義上算不上是真正的搜索引擎,僅僅是按目錄分(fēn)類的網站鏈接列表而已。用(yòng)戶完全可(kě)以不用(yòng)進行關鍵詞查詢,僅靠分(fēn)類目錄也可(kě)找到需要的信息。國(guó)外比較著名(míng)的目錄索引搜索引擎有(yǒu)yahoo(http://www.yahoo.com)Open Directory Project(DMOZ)(http://www.dmoz.com/)、LookSmart(http://www.looksmart.com)等。國(guó)内的搜狐(http://www.sohu.com)、新(xīn)浪(http://www.sina.com)、網易(http://www.163.com)搜索也都具(jù)有(yǒu)這一類功能(néng)。
元搜索引擎:元搜索引擎在接受用(yòng)戶查詢請求時,同時在其它多(duō)個引擎上進行搜索,并将結果返回給用(yòng)戶。著名(míng)的元搜索引擎有(yǒu)Dogpile(http://www.dogpile.com)、Vivisimo(http://www.vivisimo.com)等,國(guó)内元搜索引擎中(zhōng)具(jù)代表性的有(yǒu)搜星搜索引擎(http://www.soseen.com/),優客搜索(http://www.yok.com)。在搜索結果排列方面,有(yǒu)的直接按來源引擎排列搜索結果,如Dogpile,有(yǒu)的則按自定的規則将結果重新(xīn)排列組合,如Vivisimo。
其他(tā)的像新(xīn)浪(http://search.sina.com.cn)、網易(http://search.163.com)、A9(http://www.A9.com)等搜索引擎都是調用(yòng)其它全文(wén)檢索搜索引擎,或者在其搜索結果的基礎上做了二次開發。
搜索引擎的系統架構
這裏主要針對全文(wén)檢索搜索引擎的系統架構進行說明,下文(wén)中(zhōng)提到的搜索引擎如果沒有(yǒu)特殊說明也是指全文(wén)檢索搜索引擎。搜索引擎的實現原理(lǐ),可(kě)以看作(zuò)四步:從互聯網上抓取網頁(yè)→建立索引數據庫→在索引數據庫中(zhōng)搜索→對搜索結果進行處理(lǐ)和排序。
1、從互聯網上抓取網頁(yè)
利用(yòng)能(néng)夠從互聯網上自動收集網頁(yè)的網絡蜘蛛程序,自動訪問互聯網,并沿着任何網頁(yè)中(zhōng)的所有(yǒu)URL爬到其它網頁(yè),重複這過程,并把爬過的所有(yǒu)網頁(yè)收集到服務(wù)器中(zhōng)。
2、建立索引數據庫
由索引系統程序對收集回來的網頁(yè)進行分(fēn)析,提取相關網頁(yè)信息(包括網頁(yè)所在URL、編碼類型、頁(yè)面内容包含的關鍵詞、關鍵詞位置、生成時間、大小(xiǎo)、與其它網頁(yè)的鏈接關系等),根據一定的相關度算法進行大量複雜計算,得到每一個網頁(yè)針對頁(yè)面内容中(zhōng)及超鏈中(zhōng)每一個關鍵詞的相關度(或重要性),然後用(yòng)這些相關信息建立網頁(yè)索引數據庫。
3、在索引數據庫中(zhōng)搜索
當用(yòng)戶輸入關鍵詞搜索後,分(fēn)解搜索請求,由搜索系統程序從網頁(yè)索引數據庫中(zhōng)找到符合該關鍵詞的所有(yǒu)相關網頁(yè)。
4、對搜索結果進行處理(lǐ)排序
所有(yǒu)相關網頁(yè)針對該關鍵詞的相關信息在索引庫中(zhōng)都有(yǒu)記錄,隻需綜合相關信息和網頁(yè)級别形成相關度數值,然後進行排序,相關度越高,排名(míng)越靠前。最後由頁(yè)面生成系統将搜索結果的鏈接地址和頁(yè)面内容摘要等内容組織起來返回給用(yòng)戶。
下圖是一個典型的搜索引擎系統架構圖,搜索引擎的各部分(fēn)都會相互交錯相互依賴。其處理(lǐ)流程按照如下描述:

“網絡蜘蛛”從互聯網上抓取網頁(yè),把網頁(yè)送入“網頁(yè)數據庫”,從網頁(yè)中(zhōng)“提取URL”,把URL送入“URL數據庫”,“蜘蛛控制”得到網頁(yè)的URL,控制“網絡蜘蛛”抓取其它網頁(yè),反複循環直到把所有(yǒu)的網頁(yè)抓取完成。
系統從“網頁(yè)數據庫”中(zhōng)得到文(wén)本信息,送入“文(wén)本索引”模塊建立索引,形成“索引數據庫”。同時進行“鏈接信息提取”,把鏈接信息(包括錨文(wén)本、鏈接本身等信息)送入“鏈接數據庫”,為(wèi)“網頁(yè)評級”提供依據。
“用(yòng)戶”通過提交查詢請求給“查詢服務(wù)器”,服務(wù)器在“索引數據庫”中(zhōng)進行相關網頁(yè)的查找,同時“網頁(yè)評級”把查詢請求和鏈接信息結合起來對搜索結果進行相關度的評價,通過“查詢服務(wù)器”按照相關度進行排序,并提取關鍵詞的内容摘要,組織最後的頁(yè)面返回給“用(yòng)戶”。
搜索引擎的索引和搜索
對于網絡蜘蛛技(jì )術和排序技(jì )術請參考作(zuò)者其它文(wén)章[1][2],這裏以Google搜索引擎為(wèi)例主要介紹搜索引擎的數據索引和搜索過程。
數據的索引分(fēn)為(wèi)三個步驟:網頁(yè)内容的提取、詞的識别、标引庫的建立。
互聯網上大部分(fēn)信息都是以HTML格式存在,對于索引來說,隻處理(lǐ)文(wén)本信息。因此需要把網頁(yè)中(zhōng)文(wén)本内容提取出來,過濾掉一些腳本标示符和一些無用(yòng)的廣告信息,同時記錄文(wén)本的版面格式信息[1]。詞的識别是搜索引擎中(zhōng)非常關鍵的一部分(fēn),通過字典文(wén)件對網頁(yè)内的詞進行識别。對于西文(wén)信息來說,需要識别詞的不同形式,例如:單複數、過去式、組合詞、詞根等,對于一些亞洲語言(中(zhōng)文(wén)、日文(wén)、韓文(wén)等)需要進行分(fēn)詞處理(lǐ)[3]。識别出網頁(yè)中(zhōng)的每個詞,并分(fēn)配唯一的wordID号,用(yòng)于為(wèi)數據索引中(zhōng)的标引模塊服務(wù)。
标引庫的建立是數據索引中(zhōng)結構最複雜的一部分(fēn)。一般需要建立兩種标引:文(wén)檔标引和關鍵詞标引。文(wén)檔标引分(fēn)配每個網頁(yè)一個唯一的docID号,根據docID标引出在這個網頁(yè)中(zhōng)出現過多(duō)少過wordID,每個wordID出現的次數、位置、大小(xiǎo)寫格式等,形成docID對應wordID的數據列表;關鍵詞标引其實是對文(wén)檔标引的逆标引,根據wordID标引出這個詞出現在那些網頁(yè)(用(yòng)wordID表示),出現在每個網頁(yè)的次數、位置、大小(xiǎo)寫格式等,形成wordID對應docID的列表。
關于索引數據的詳細數據結構,有(yǒu)興趣的朋友可(kě)以參看文(wén)獻[4]。
搜索的處理(lǐ)過程是對用(yòng)戶的搜索請求進行滿足的過程,通過用(yòng)戶輸入搜索關鍵字,搜索服務(wù)器對應關鍵詞字典,把搜索關鍵詞轉化為(wèi)wordID,然後在标引庫中(zhōng)得到docID列表,對docID列表進行掃描和wordID的匹配,提取滿足條件的網頁(yè),然後計算網頁(yè)和關鍵詞的相關度,根據相關度的數值返回前K篇結果(不同的搜索引擎每頁(yè)的搜索結果數不同)返回給用(yòng)戶。如果用(yòng)戶查看的第二頁(yè)或者第多(duō)少頁(yè),重新(xīn)進行搜索,把排序結果中(zhōng)在第K+1到2*K的網頁(yè)組織返回給用(yòng)戶。其處理(lǐ)流程如下圖所示:

搜索引擎細化趨勢
随着搜索引擎市場空間越來越大,搜索引擎也分(fēn)得越來越細。互聯網沒有(yǒu)國(guó)界,百度總裁李彥宏所講:搜索引擎市場是赢家通吃的市場。如果一個搜索引擎要想在搜索市場上有(yǒu)自己的一席之地,必須擁有(yǒu)自己的特色。而且,數以億計的網民(mín),搜索需求不可(kě)能(néng)都一樣,不同類型的用(yòng)戶需要不同類型的搜索引擎,網頁(yè)搜索隻是搜索需求中(zhōng)的一種,這就決定了搜索引擎會不斷細化,各具(jù)特色的搜索引擎也陸續出現。
從技(jì )術上講,各種搜索引擎都具(jù)有(yǒu)類似的系統架構,其不同在于搜索的數據源的不同。除了上面提到的網頁(yè)搜索引擎以外,下面列舉幾個典型的搜索引擎:
新(xīn)聞搜索引擎
看新(xīn)聞是許多(duō)網民(mín)上網的主要目的,新(xīn)聞搜索也就成了查看新(xīn)聞的重要工(gōng)具(jù)。新(xīn)聞搜索引擎實現的過程比較簡單,一般是掃描國(guó)内外有(yǒu)名(míng)的新(xīn)聞網站,抓取新(xīn)聞網頁(yè),建立自己的新(xīn)聞數據庫,然後提供搜索,隻是對新(xīn)聞網頁(yè)抓取的頻率要求很(hěn)高,有(yǒu)的需要做到幾分(fēn)鍾掃描一次。現在許多(duō)大型的網頁(yè)搜索引擎都提供相應的新(xīn)聞搜索功能(néng),如:Google新(xīn)聞搜索(http://news.google.com),中(zhōng)搜新(xīn)聞搜索(http://news.zhongsou.com),百度新(xīn)聞搜索(http://news.baidu.com)等。
音樂搜索引擎
有(yǒu)了互聯網以後,音樂得到了廣泛的傳播,對于喜歡音樂的網民(mín)來說,音樂搜索引擎成了最鍾愛的工(gōng)具(jù)。音樂搜索引擎需要監控互聯網上大型的音樂網站,抓取其音樂數據的描述信息,形成自己的數據庫,音樂的下載和試聽都會在其原來的音樂網站上進行。目前有(yǒu):搜刮網(http://www.sougua.com),百度mp3搜索(http://mp3.baidu.com),1234567搜索(http://www.1234567.com)等。
圖像搜索引擎
通過圖像搜索引擎可(kě)以找到自己感興趣的圖片鏈接,各大搜索引擎也提供了圖像搜索功能(néng)。圖像文(wén)件本身不能(néng)夠被搜索引擎索引,但搜索引擎可(kě)以通過鏈接文(wén)本分(fēn)析和圖片注解等得到圖片的信息。目前有(yǒu):Google圖像搜索(http://images.google.com/),VisionNext搜索(http://www.eefind.com),百度圖像搜索(http://images.baidu.com)等。
商(shāng)機搜索引擎
電(diàn)子商(shāng)務(wù)一直是互聯網的熱點,商(shāng)機搜索對電(diàn)子商(shāng)務(wù)的發展也起到了巨大的推動作(zuò)用(yòng),商(shāng)機搜索讓互聯網經濟和傳統經營緊密結合在一起,給傳統的企業提供了一個新(xīn)的銷售模式。商(shāng)機搜索引擎,通過抓取電(diàn)子商(shāng)務(wù)網站的商(shāng)品信息和其他(tā)商(shāng)業信息,給訪問者提供統一的搜索平台。目前有(yǒu):soaso價格搜索引擎(http://www.soaso.com),8848購(gòu)物(wù)搜索(http://www.8848.com),阿裏巴巴商(shāng)機搜索(http://www.alibaba.com)等。
其他(tā)特色的搜索引擎還有(yǒu)專利搜索、軟件搜索、ftp搜索、遊戲搜索、法律搜索等等。
|