1.搜索引擎的概念
在浩瀚的網(wǎng)絡(luò)資源中,搜素引擎(Search Engine)是一種網(wǎng)上信息檢索工具,它能幫助用戶迅速而全面地找到所需要的信息。我們這樣對(duì)搜索引擎進(jìn)行定義:搜索引擎是一種能夠通過(guò)因特網(wǎng)接受用戶的查詢命令,并向用戶提供符合其查詢要求的信息資源網(wǎng)址的系統(tǒng)。據(jù)統(tǒng)計(jì),搜索引擎搜索僅次于電子郵件的應(yīng)用。目前網(wǎng)上比較有影響的中文搜索工具有:google、百度、北大天網(wǎng)、愛(ài)問(wèn)(iask)、雅虎(yahoo!)、搜狗(sogou)、搜搜(soso)等搜索引擎。英文的有:Yahoo! 、AltaVista、Excite、Infoseek、Lycos、Aol等。另外還有專用搜索引擎,例如專門搜索歌曲和音樂(lè)的;專門搜索電子郵件地址、電話與地址及公眾信息的;專門搜索各種文件的FTP搜索引擎等。
搜索引擎是指根據(jù)一定的策略,運(yùn)用特定的計(jì)算機(jī)程序搜集互聯(lián)網(wǎng)上的信息,在對(duì)信息進(jìn)行組織和處理后,為用戶提供檢索服務(wù)的系統(tǒng)。搜索引擎并不是真正的互聯(lián)網(wǎng),它搜索的實(shí)際上是預(yù)先整理好的網(wǎng)頁(yè)索引數(shù)據(jù)庫(kù)。真正意義上的搜索引擎,通常指的是收集了互聯(lián)網(wǎng)上幾千萬(wàn)到幾十億個(gè)網(wǎng)頁(yè)并對(duì)我那個(gè)也中的每一個(gè)詞(即關(guān)鍵詞)進(jìn)行索引。建立索引數(shù)據(jù)庫(kù)的全文搜索引擎。現(xiàn)在的搜索引擎已普遍使用超鏈分析技術(shù),除了分析索引網(wǎng)頁(yè)本身的內(nèi)容,還分析索引所有指向該網(wǎng)頁(yè)的鏈接的URL、Anchor、Text,甚至鏈接周圍的文字。所以,有時(shí)候,即使某個(gè)網(wǎng)頁(yè)A中并沒(méi)有出現(xiàn)某個(gè)詞,比如
“信息檢索”,但如果有網(wǎng)頁(yè)B用鏈接“信息檢索”指向這個(gè)網(wǎng)頁(yè)A,那么用戶搜索“信息檢索”時(shí)也能找到網(wǎng)頁(yè)A。而且,如果有越多的網(wǎng)頁(yè)的“信息檢索”鏈接指向網(wǎng)頁(yè)A,那么網(wǎng)頁(yè)A在用戶搜索“信息檢索”時(shí)也會(huì)被認(rèn)為更相關(guān),排序也會(huì)越靠前。
搜索引擎的原理,可以分為四步:從互聯(lián)網(wǎng)上抓取網(wǎng)頁(yè)、建立索引數(shù)據(jù)庫(kù)、在索引數(shù)據(jù)庫(kù)中搜索排序、對(duì)搜索結(jié)果進(jìn)行處理和排序。
(1)、從互聯(lián)網(wǎng)上抓取網(wǎng)頁(yè):利用能夠從互聯(lián)網(wǎng)上自動(dòng)收集網(wǎng)頁(yè)的蜘蛛系統(tǒng)程序,自動(dòng)訪問(wèn)互聯(lián)網(wǎng),并沿著任何網(wǎng)頁(yè)中所有URL爬到其他網(wǎng)頁(yè),重復(fù)這個(gè)過(guò)程,并把爬過(guò)的所有網(wǎng)頁(yè)收集回來(lái)。
(2)、建立索引數(shù)據(jù)庫(kù):由分析索引系統(tǒng)程序?qū)κ占貋?lái)的網(wǎng)頁(yè)進(jìn)行分析,提取相關(guān)網(wǎng)頁(yè)信息(包括網(wǎng)頁(yè)所在URL、編碼類型、頁(yè)面內(nèi)容包含的關(guān)鍵詞、關(guān)鍵詞位置、生成時(shí)間、大小、與其他網(wǎng)頁(yè)的鏈接關(guān)系等),并根據(jù)一定的相關(guān)度算法進(jìn)行大量的復(fù)雜計(jì)算,得到每一個(gè)網(wǎng)頁(yè)針對(duì)頁(yè)面內(nèi)容中及超鏈中每一個(gè)關(guān)鍵詞的相關(guān)度(或重要性),然后利用這些相關(guān)信息建立網(wǎng)頁(yè)索引數(shù)據(jù)庫(kù)。
(3)、在索引數(shù)據(jù)庫(kù)中搜索排序:當(dāng)用戶輸入關(guān)鍵詞后,由搜索系統(tǒng)程序從網(wǎng)頁(yè)索引數(shù)據(jù)庫(kù)中找到符合該關(guān)鍵詞的所有相關(guān)網(wǎng)頁(yè)。因?yàn)樗孟嚓P(guān)網(wǎng)頁(yè)針對(duì)該關(guān)鍵詞的相關(guān)度早已計(jì)算好,所以只需按照現(xiàn)成的相關(guān)數(shù)值排序,相關(guān)度越高,排名越靠前。最后由頁(yè)面生成系統(tǒng)將搜索結(jié)果的鏈接地址和頁(yè)面內(nèi)容摘要等內(nèi)容組織起來(lái)返回給用戶。
(4)、對(duì)搜索結(jié)果進(jìn)行處理排序:所有相關(guān)網(wǎng)頁(yè)針對(duì)該關(guān)鍵詞的相關(guān)信息在索引庫(kù)中都有記錄,只需綜合相關(guān)信息和網(wǎng)頁(yè)級(jí)別形成相關(guān)數(shù)值度,然后進(jìn)行排序,相關(guān)度越高,排名越靠前。最后由頁(yè)面生成系統(tǒng)將搜索結(jié)果的鏈接地址和頁(yè)面內(nèi)容摘要等內(nèi)容組織起來(lái)返回給用戶。
搜索引擎的分類
搜索引擎的技術(shù)基礎(chǔ)是全文檢索技術(shù)。全文檢索通常指文本全文檢索,包括信息的儲(chǔ)存、組織、表現(xiàn)、查詢、存取等各個(gè)方面,其核心為文本信息的索引和檢索,一般用于企事業(yè)單位。隨著互聯(lián)網(wǎng)信息的發(fā)展,搜索引擎在全文檢索技術(shù)上逐漸發(fā)展起來(lái),并得到廣泛的應(yīng)用,但搜索引擎還是不同于全文檢索。搜索引擎和常規(guī)意義上的全文檢索主要區(qū)別有以下幾點(diǎn)。
(1)、數(shù)據(jù)量。
傳統(tǒng)全文檢索系統(tǒng)面向的是企業(yè)本身的數(shù)據(jù)或者和企業(yè)相關(guān)的數(shù)據(jù),一般索引數(shù)據(jù)庫(kù)的規(guī)模多在GB級(jí),數(shù)據(jù)量大的也只有幾百萬(wàn)條;但互聯(lián)網(wǎng)網(wǎng)頁(yè)搜索需要處理幾十億的網(wǎng)頁(yè),搜索引擎的策略都是采用服務(wù)器群集和分布式據(jù)算技術(shù)。
(2)、內(nèi)容相關(guān)性。
信息太多,差準(zhǔn)和排序就是特別重要,Google等搜索引擎采用網(wǎng)頁(yè)鏈接分析技術(shù),根據(jù)互聯(lián)網(wǎng)上網(wǎng)頁(yè)被鏈接的次數(shù)作為重要性評(píng)判的依據(jù);但全文檢索的數(shù)據(jù)源中相互鏈接的程度并不高,不能作為判別重要性的依據(jù),只能基于內(nèi)容的相關(guān)性排序。
(3)、安全性。
互聯(lián)網(wǎng)信息是公開(kāi)的,除了文本內(nèi)容外,其他信息都不太重要;而企業(yè)全文檢索的數(shù)據(jù)源都是企業(yè)內(nèi)部的信息,有等級(jí)、權(quán)限等限制,對(duì)查詢方式也有更嚴(yán)格的要求,因此其數(shù)據(jù)一般會(huì)安全和集中地存放在數(shù)據(jù)庫(kù)倉(cāng)庫(kù)中以保證數(shù)據(jù)安全和管理的要求。
(4)、個(gè)性化和智能化。
搜索引擎面向的是互聯(lián)網(wǎng)的訪問(wèn)者,由于其數(shù)據(jù)量和客戶數(shù)量的限制,自然語(yǔ)言處理技術(shù)、知識(shí)檢索、知識(shí)挖掘等計(jì)算密集的智能計(jì)算技術(shù)很難應(yīng)用,這也是目前搜索引擎技術(shù)努力的方向。而全文檢索數(shù)據(jù)量小,檢索需求明確,客戶量少,在智能化和個(gè)性上更具有優(yōu)勢(shì)。
除了與全文檢索系統(tǒng)有上述區(qū)別之外,搜索引擎按其工作方式主要可以分為3種,分別是全文搜索引擎(Full Text Search Engine)、目錄索引類(Search Index/Directory)和元搜索引擎(Meta Search Engine)。
一、全文搜索引擎。
全文搜索引擎是名副其實(shí)的搜索引擎(google、AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut、百度、中文搜索、北大天網(wǎng)等),他們都是通過(guò)從互聯(lián)網(wǎng)上提取的各個(gè)網(wǎng)站的信息(以網(wǎng)頁(yè)文字為主)而建立的數(shù)據(jù)庫(kù)中,檢索與用戶查詢條件匹配的相關(guān)記錄,然后按一定的排列順序?qū)⒔Y(jié)果返回給用戶,因此它們是真正的的搜索引擎。從搜索結(jié)果來(lái)源的角度,全文搜索引擎又可以細(xì)分為兩種:一種是擁有自己的檢索程序,俗稱機(jī)器人程序或蜘蛛程序,并自建網(wǎng)頁(yè)數(shù)據(jù)庫(kù),搜索結(jié)果直接從自身的數(shù)據(jù)庫(kù)中調(diào)用,如上面提到的搜索引擎;另一種則是租用其他引擎的數(shù)據(jù)庫(kù),并按自定的格式排列搜索結(jié)果,如Lycos引擎。
全文搜索引擎有全文搜索、檢索功能強(qiáng)、信息更新速度快等優(yōu)點(diǎn)。但同時(shí)也有其不足之處,提供的信息雖然多而全,但可供選擇的信息太多反而降低相應(yīng)的命中率,并且提供的查詢結(jié)果重復(fù)鏈接較多,層次結(jié)構(gòu)不清晰,給人一種繁多雜亂的感覺(jué)。
二、目錄索引類搜索引擎。
目錄索引雖然有搜索功能,但在嚴(yán)格意義上算不上是真正的搜索引擎,僅僅是按目錄分類的網(wǎng)站鏈接列表而已。用戶完全可以不用進(jìn)行關(guān)鍵詞(keywords)查詢,僅靠分類目錄也可找到需要的信息。目錄索引中最具代表性的莫過(guò)于大名鼎鼎的Yahoo!,其他的還有Open Directory Project(DMOZ)、LookSmart、About等。國(guó)內(nèi)的搜狐、新浪、網(wǎng)易搜索也都屬于這一類。
目錄索引與全文搜索引擎的區(qū)別在于它是由人工建立的,通過(guò)“人工方式”將站點(diǎn)進(jìn)行了分類,不像全文搜索引擎那樣,將網(wǎng)站上的所有文中和信息都收錄進(jìn)去,而是首先將該網(wǎng)站劃分到某個(gè)分類下,再記錄一些摘要信息,對(duì)該網(wǎng)站進(jìn)行概述性的簡(jiǎn)要介紹,用戶提出搜索要求時(shí),搜索引擎只在網(wǎng)站的簡(jiǎn)介中搜索。它的主要優(yōu)點(diǎn)有:層次、結(jié)構(gòu)清晰、易于查找;多級(jí)類目,便于查詢到具體明確的主題;在內(nèi)容提要、分類目錄下有簡(jiǎn)明扼要的內(nèi)容,方便使用戶一目了然。其缺點(diǎn)是搜索范圍較小、更新速度慢、查詢交叉類目時(shí)容易遺漏。
三、元搜索引擎。
元搜索引擎在接受用戶查詢請(qǐng)求時(shí),同時(shí)在其他多個(gè)搜索引擎上進(jìn)行搜索,并將結(jié)果返回給用戶。著名的元搜索引擎有InfoSpace、 Dogpile、Vivisimo等,中文元搜索引擎中具代表性的有北斗搜索。在搜索結(jié)果排列方面,有的直接按來(lái)源搜索引擎排列搜索結(jié)果,如 Dogpile,有的則按自定的規(guī)則將結(jié)果重新排列組合,如Vivisimo。
除上述三大類搜索引擎外,還有以下集中非主流形式。
(1)、集合式搜索引擎:如HotBot在2002年底推出的引擎。該搜索引擎類似于元搜索引擎,但區(qū)別在于不是同時(shí)調(diào)用多個(gè)搜索引擎,而是由用戶從提供的4個(gè)引擎之中選擇,因此他叫集合式搜索引擎更確切些。
(2)、門戶搜索引擎:如Aol Search、Msn Search等雖然提供搜索服務(wù),但自身既沒(méi)有分類目錄也沒(méi)有網(wǎng)頁(yè)數(shù)據(jù)庫(kù),其搜索結(jié)果完全來(lái)自于其他引擎。
(3)、免費(fèi)鏈接目錄(Free For ALL links,FFA):這類網(wǎng)站一般只簡(jiǎn)單地的滾動(dòng)排列鏈接條目,少部分有簡(jiǎn)單的分類目錄,不過(guò)規(guī)模比起Yahoo!等目錄索引要小得多。
除了上面的分類,搜索引擎還應(yīng)具有以下功能:
A、網(wǎng)頁(yè)搜索功能
B、網(wǎng)站搜索功能
C、圖片搜索功能
D、新聞搜索功能
E、字典搜索功能
F、功能搜索功能
搜索引擎的關(guān)鍵技術(shù)
1、信息收集和存儲(chǔ)技術(shù)。
網(wǎng)上信息收集和存儲(chǔ)一般分為人工和自動(dòng)兩種方式。
人工方式采用傳統(tǒng)信息收集、分類、存儲(chǔ)、組織和檢索的方法。研究人員對(duì)網(wǎng)站進(jìn)行調(diào)查、篩選、分類、存儲(chǔ)。由專業(yè)人員手工建立關(guān)鍵字索引,再將索引信息存入計(jì)算機(jī)相應(yīng)的數(shù)據(jù)庫(kù)中。
自動(dòng)方式通常是由網(wǎng)絡(luò)機(jī)器人來(lái)完成的。“網(wǎng)絡(luò)機(jī)器人”是一種自動(dòng)運(yùn)行的軟件,其功能是搜索因特網(wǎng)上的網(wǎng)站和網(wǎng)頁(yè)。這種軟件定期在因特網(wǎng)上漫游,通過(guò)網(wǎng)頁(yè)間鏈接順序地搜索新的地址,當(dāng)遇到新的網(wǎng)頁(yè)的時(shí),就給該網(wǎng)頁(yè)上的某些字或全部字做上索引并把它們加入到搜索引擎的數(shù)據(jù)庫(kù)中,由此搜索引擎的數(shù)據(jù)庫(kù)得以定期更新。
一般來(lái)說(shuō),人工方式收集信息的準(zhǔn)確性要遠(yuǎn)優(yōu)于“網(wǎng)絡(luò)機(jī)器人”,但其收集信息的效率及全面性低于“網(wǎng)絡(luò)機(jī)器人”。
2、信息預(yù)處理技術(shù)。
信息預(yù)處理包括信息格式支持與轉(zhuǎn)換及信息過(guò)濾。目前因特網(wǎng)上的信息發(fā)布格式多種多樣,這就要求搜索引擎支持多種文件格式。從實(shí)際情況來(lái)看,所有的搜索引擎都支持HTML格式,而對(duì)于其他文件格式的支持則不同的搜索引擎有不同的規(guī)定,最多的能支持200多種文件格式。一般地說(shuō),一個(gè)企業(yè)級(jí)的公用Web站點(diǎn)起碼應(yīng)該支持40~60種文件格式。同時(shí)搜索引擎還應(yīng)具備信息格式轉(zhuǎn)換功能,以保證不同格式的數(shù)據(jù)數(shù)據(jù)均能在網(wǎng)絡(luò)流通。信息過(guò)濾也是搜索引擎的一項(xiàng)重要技術(shù)。在因特網(wǎng)中,存在大量的無(wú)用信息,一個(gè)好的搜索引擎應(yīng)當(dāng)盡量減少垃圾站點(diǎn)的數(shù)量,這是信息過(guò)濾要著重解決的問(wèn)題。
3、信息索引技術(shù)。
信息索引就是創(chuàng)建文檔信息的特征記錄,以使用戶能夠快速地檢索到所需信息。建立索引主要涉及以下幾個(gè)問(wèn)題。
(1)、信息語(yǔ)詞切分和語(yǔ)詞詞法分析:語(yǔ)詞是信息表達(dá)的最小單位,由于語(yǔ)詞切分中存在切分歧義,切分需要充分利用各種上下文知識(shí)。語(yǔ)詞詞法分析是指識(shí)別出各個(gè)語(yǔ)詞的詞干,以便根據(jù)詞干建立信息索引。
(2)、進(jìn)行詞性標(biāo)注及相關(guān)的自然語(yǔ)言處理:詞性標(biāo)注是指利用基于規(guī)則和統(tǒng)計(jì)(馬爾科夫鏈)的科學(xué)方法對(duì)語(yǔ)詞進(jìn)行標(biāo)注,基于馬爾科夫鏈隨即過(guò)程的n元語(yǔ)法統(tǒng)計(jì)分析方法在詞性標(biāo)注中能達(dá)到較高的精度。可利用多種語(yǔ)法規(guī)則識(shí)別出重要的短語(yǔ)結(jié)構(gòu)。自然語(yǔ)言處理是運(yùn)用計(jì)算機(jī)對(duì)自然語(yǔ)言進(jìn)行分析和理解,從而使計(jì)算機(jī)在某種程度上具有人的語(yǔ)言能力。將自然語(yǔ)言處理應(yīng)用在信息檢索中,可以提高信息檢索的精度和相關(guān)性。
(3)、建立檢索項(xiàng)索引:使用倒排文件的方式建立檢索項(xiàng)索引,一般包括“檢索項(xiàng)”、“檢索項(xiàng)所在文件位置信息”以及“檢索項(xiàng)權(quán)重”。
(4)、檢索結(jié)果處理技術(shù):搜索引擎的檢索結(jié)果通常包含大量文件,用戶不可能一一瀏覽。搜索引擎一般應(yīng)按與查詢的相關(guān)程度對(duì)檢索結(jié)果進(jìn)行排列,最相關(guān)的文件通常放在最前面。搜索引擎確定相關(guān)性的方法有概率方法、位置方法、摘要方法、分類或聚類方法等。
a、概率方法:根據(jù)關(guān)鍵詞在文中出現(xiàn)的頻率來(lái)判定文件的相關(guān)性。這種方法對(duì)關(guān)鍵詞出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì),關(guān)鍵詞出現(xiàn)的次數(shù)越多,該文件與查詢的相關(guān)程度就越高。
b、位置方法:根據(jù)關(guān)鍵詞在文中出現(xiàn)的位置來(lái)判定文件的相關(guān)性。關(guān)鍵詞在文件中出現(xiàn)的越早,文件的相關(guān)程度就越高。
c、摘要方法:搜索引擎自動(dòng)地為每個(gè)文件生成一份摘要,讓用戶自己判斷結(jié)果的相關(guān)性
,以使用戶進(jìn)行選擇。
d、分類或聚類方法:搜索引擎采用分類或聚類技術(shù),自動(dòng)把查詢結(jié)果歸入到不同的類別中。
搜索引擎的體系結(jié)構(gòu)
搜索引擎是指以一定的策略搜集互聯(lián)網(wǎng)上的信息,在對(duì)信息進(jìn)行組織和處理后,為用戶提供檢索服務(wù)的系統(tǒng)。
搜索引擎主要由搜索器、索引器、檢索器和用戶接口構(gòu)成。
一、搜索器。
A、網(wǎng)絡(luò)蜘蛛:搜索引擎系統(tǒng)結(jié)構(gòu)的搜索器(Spider)俗稱網(wǎng)絡(luò)蜘蛛或網(wǎng)絡(luò)爬蟲(chóng),十億個(gè)自動(dòng)收集網(wǎng)頁(yè)的系統(tǒng)程序,其功能是日夜不停地在互聯(lián)網(wǎng)中漫游,搜集信息。它要盡可能多、盡可能快地搜集各種類型的新信息,還要定期更新已經(jīng)搜索過(guò)的舊信息,以避免出現(xiàn)死鏈接。目前有兩種搜集信息的策略:
a、從一個(gè)其實(shí)URL開(kāi)始,順著這些URL中的超鏈接(Hyperlink),以寬度優(yōu)先、深度優(yōu)先或啟發(fā)式方式循環(huán)在互聯(lián)網(wǎng)中發(fā)現(xiàn)信息。起始URL使一些非常流行,包含很多鏈接的站點(diǎn)(如Yahoo!)。
b、將Web空間按照域名、IP地址或國(guó)家劃分,每個(gè)搜索器負(fù)責(zé)一個(gè)子空間的窮盡搜索。搜索器將搜索回來(lái)的每個(gè)文檔過(guò)濾掉格式符,提取文本數(shù)據(jù) Fulltext。每個(gè)文檔對(duì)應(yīng)著一個(gè)Fulltext文件,內(nèi)容包括網(wǎng)頁(yè)標(biāo)題、網(wǎng)頁(yè)URL、大小、時(shí)間、類型、分類等屬性及文本內(nèi)容,所有生成的這些文件交給索引器進(jìn)行索引處理。搜索器的實(shí)現(xiàn)常用分布式并行計(jì)算技術(shù),以提高信息發(fā)現(xiàn)和更新的速度。
B、內(nèi)容提取(文本文件)。
對(duì)網(wǎng)頁(yè)內(nèi)容的提取,一直是網(wǎng)絡(luò)蜘蛛重要的技術(shù)。整個(gè)系統(tǒng)一般采用插件的形式,通過(guò)一個(gè)插件管理服務(wù)程序,遇到不同格式的網(wǎng)頁(yè)采用不同的插件機(jī)處理,搜索引擎建立索引、處理的對(duì)象是文本文件。
C、定期更新策略。
由于網(wǎng)站的內(nèi)容經(jīng)常在變化,因此網(wǎng)絡(luò)蜘蛛也不斷地更新其抓取網(wǎng)頁(yè)的內(nèi)容,這就需要網(wǎng)絡(luò)蜘蛛按照一定的周期去掃描網(wǎng)站,查找哪些頁(yè)面是需要更新的頁(yè)面,哪些頁(yè)面是新增頁(yè)面,哪些頁(yè)面是已經(jīng)過(guò)期的死鏈接。
二、索引器。
索引器(Indexer)的功能是理解搜索器所搜索的信息,由分析索引系統(tǒng)程序?qū)κ占貋?lái)的網(wǎng)頁(yè)進(jìn)行分析,提取網(wǎng)頁(yè)信息(包括網(wǎng)頁(yè)所在URL、編碼類型、頁(yè)面內(nèi)容包含的關(guān)鍵詞、關(guān)鍵詞位置、生成時(shí)間、大小、與其他網(wǎng)頁(yè)的鏈接關(guān)系等),根據(jù)一定的相關(guān)度算法進(jìn)行大量復(fù)雜計(jì)算,得到每一個(gè)網(wǎng)頁(yè)針對(duì)頁(yè)面內(nèi)容中及超鏈接中每一個(gè)關(guān)鍵詞的相關(guān)度(或重要性),然后這些相關(guān)信息建立網(wǎng)頁(yè)索引數(shù)據(jù)庫(kù)。
索引器的工作過(guò)程為:索引器讀入搜索器生成的Fulltext文件,采用基于位置倒排索引與三級(jí)n元索引相結(jié)合的索引機(jī)制。首先進(jìn)行分詞處理生成索引項(xiàng),并作歸類排序,生成Index文件和inv文件,inv文件為倒排表(Inversion List),即由索引項(xiàng)查找相對(duì)應(yīng)的文檔,Index文件形成分詞-倒排表對(duì)應(yīng)關(guān)系,內(nèi)容為分詞在倒排表中相應(yīng)的文檔塊起始地址,含有該詞的文檔數(shù)量等信息。索引器可以使用集中式索引算法或分布式索引算法。當(dāng)數(shù)據(jù)量很大時(shí),必須實(shí)現(xiàn)即時(shí)索引,否則不能跟上信息量急劇增加的速度。索引算法對(duì)索引器的性能(如大規(guī)模峰值查詢時(shí)的響應(yīng)速度)有很大的影響。一個(gè)搜索引擎的有效性在很大程度上取決于索引器的質(zhì)量。
索引項(xiàng)有客觀索引項(xiàng)和內(nèi)容索引項(xiàng)兩種:客觀索引項(xiàng)與文檔的語(yǔ)義內(nèi)容無(wú)關(guān),如作者名、URL、更新時(shí)間、編碼、長(zhǎng)度、鏈接流行度(Link Popularity)等;內(nèi)容索引項(xiàng)是用來(lái)反映文檔內(nèi)容的,如關(guān)鍵詞極其權(quán)重,短語(yǔ)、單字等。內(nèi)容索引項(xiàng)可以分為單索引項(xiàng)和多索引項(xiàng)(短語(yǔ)索引項(xiàng))兩種。單索引項(xiàng)對(duì)于英文來(lái)講是英語(yǔ)單詞,比較容易提取,因?yàn)閱卧~之間有天然的分隔符(空格);對(duì)于中文等連續(xù)書寫的語(yǔ)言,必須進(jìn)行詞語(yǔ)的切分(分詞)。
詞法分析是對(duì)自然語(yǔ)言的形態(tài)進(jìn)行分析,判定詞的結(jié)構(gòu)、類別和性質(zhì)的過(guò)程。對(duì)于以英文為代表的形態(tài)豐富的語(yǔ)言來(lái)說(shuō),英文的詞法分析的一個(gè)重要的過(guò)程是形態(tài)分析,即將英文詞還原成詞干。而漢語(yǔ)形態(tài)變化很少,其主要的問(wèn)題在于書寫時(shí)詞與詞之間沒(méi)有空格,所以通常中文詞法分析的關(guān)鍵是分詞,分詞往往是后續(xù)進(jìn)一步處理的基礎(chǔ)。
(1)、英語(yǔ)詞法分析:英文的形態(tài)分析主要目標(biāo)是將句子中的詞從詞性還原到詞甚至詞根。英文的形態(tài)分析常常也稱為stemming,分析器稱為 stemmer。形態(tài)分析常常采用基于自動(dòng)機(jī)的規(guī)則方法,即將詞形變化的規(guī)律總結(jié)成規(guī)則,然后通過(guò)自動(dòng)機(jī)的方法對(duì)詞形進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換的過(guò)程當(dāng)中可以使用或者不使用詞典。
(2)、中文分詞技術(shù):基于機(jī)械匹配和機(jī)遇概率統(tǒng)計(jì)的分詞方法。前者通過(guò)對(duì)已有詞典的機(jī)械匹配來(lái)得到分詞結(jié)果。后者不需要任何詞典就可以得到粉刺結(jié)果,或者對(duì)粗切分結(jié)果進(jìn)行基于概率統(tǒng)計(jì)后的處理來(lái)得到最終分詞結(jié)果。
中文分詞技術(shù)面臨的兩個(gè)最大的問(wèn)題是切分歧義和未定義詞的問(wèn)題。前者要解決在上下文環(huán)境下不同切分結(jié)果的選擇;后者要解決詞典中未收錄詞(如人名、地名、機(jī)構(gòu)名等)的識(shí)別。可以在機(jī)械匹配的基礎(chǔ)上通過(guò)規(guī)則的方法來(lái)求解上述兩個(gè)問(wèn)題。然而規(guī)則方法很難窮盡真實(shí)文本的各種現(xiàn)象。目前比較主流的方法是通過(guò)對(duì)真實(shí)文本的概率統(tǒng)計(jì)來(lái)求解切分歧義和未定義詞問(wèn)題。
三、檢索器。
檢索器(Searcher)的功能是針對(duì)用戶的查詢請(qǐng)求在索引庫(kù)中快速檢出文檔,采用一定的信息檢索模型進(jìn)行文檔與查詢的相關(guān)度評(píng)價(jià),對(duì)將要輸出的結(jié)果進(jìn)行排序、聚類等操作,并實(shí)現(xiàn)某用戶相關(guān)性反饋機(jī)制。信息檢索模型有以下幾種:布爾邏輯模型、模糊邏輯模型、向量空間模型、概率模型及混合模型等。
檢索器的工作過(guò)程如下:檢索器對(duì)用戶接口(Uesr Interface, UI)提出的查詢要求進(jìn)行遞歸分析,在UI中一般采用基本語(yǔ)法來(lái)組織要檢索的條件。檢索器通常支持多種語(yǔ)法規(guī)則,如邏輯操作符AND、OR、NOT,使用 “+、-”連接號(hào)和通配符,使用逗號(hào)、括號(hào)或引號(hào)進(jìn)行詞組查找。對(duì)于每個(gè)索引項(xiàng),匹配Index文件,查到倒排表(inv文件)中包含該索引項(xiàng)的文檔,并對(duì)所有查找出的文檔進(jìn)行集合運(yùn)算,將結(jié)果集按照基于內(nèi)容和基于鏈接分析的方法進(jìn)行相
關(guān)度評(píng)價(jià)并排序,最大限度地保證檢索出的結(jié)果與用戶查詢串有很高的相關(guān)性,將最終形成的有序的文檔結(jié)果集合返回給用戶。
四、用戶接口。
用戶接口(UI)的作用是輸入用戶查詢,顯示結(jié)果查詢結(jié)果,提供用戶相關(guān)性反饋機(jī)制。UI的主要目的是方便用戶使用搜索引擎,高效率、多方式地從搜索引擎中得到有效、及時(shí)的信息。UI的實(shí)際和實(shí)現(xiàn)使用人機(jī)交互的理論和方法,以充分適應(yīng)人類的思維習(xí)慣。
用戶輸入接口可以分為簡(jiǎn)單接口和復(fù)雜接口兩種。簡(jiǎn)單接口只提供用戶輸入查詢串的文本框;復(fù)雜接口可以讓用戶對(duì)查詢進(jìn)行限制,如邏輯運(yùn)算(與、或、+、-)、相近關(guān)系(相鄰、near)、域名范圍(如edu.com)、出現(xiàn)位置(如標(biāo)題、內(nèi)容)、信息時(shí)間、長(zhǎng)度等。目前一些公司和機(jī)構(gòu)正在考慮制定查詢選項(xiàng)的標(biāo)準(zhǔn)。
當(dāng)互聯(lián)網(wǎng)用戶通過(guò)UI提交查詢時(shí),檢索器程序根據(jù)用戶輸入的查詢關(guān)鍵詞,在已由索引器完成索引和初排序的存儲(chǔ)桶(Barrel)中進(jìn)行查找,并采用特定的頁(yè)面優(yōu)先度算法對(duì)其結(jié)果進(jìn)行最終排序,使之盡可能符合用戶查詢需求。最后UI將最終查詢結(jié)果呈現(xiàn)在互聯(lián)網(wǎng)用戶面前。
搜索引擎的工作原理(一)
搜索引擎的工作原理可以分為三步:從互聯(lián)網(wǎng)上抓取網(wǎng)頁(yè)、建立索引數(shù)據(jù)庫(kù)、在索引數(shù)據(jù)庫(kù)中搜索排序。
(1)、從互聯(lián)網(wǎng)上抓取網(wǎng)頁(yè),就是利用能夠從互聯(lián)網(wǎng)上自動(dòng)收集網(wǎng)頁(yè)的Spider系統(tǒng)程序,自動(dòng)訪問(wèn)互聯(lián)網(wǎng),并沿著任何網(wǎng)頁(yè)中的所有URL爬到其他網(wǎng)頁(yè),重復(fù)這個(gè)過(guò)程,并把爬過(guò)的所有網(wǎng)頁(yè)收集回來(lái)。
(2)、建立索引數(shù)據(jù)庫(kù),就是由分析索引系統(tǒng)程序?qū)κ占貋?lái)的網(wǎng)頁(yè)進(jìn)行分析,提取相關(guān)網(wǎng)頁(yè)信息,根據(jù)一定的相關(guān)度算法進(jìn)行大量復(fù)雜計(jì)算,得到每一個(gè)網(wǎng)頁(yè)針對(duì)頁(yè)面內(nèi)容中及超鏈中每一個(gè)關(guān)鍵詞的相關(guān)度或重要性,然后利用這些相關(guān)信息建立網(wǎng)頁(yè)索引數(shù)據(jù)庫(kù)。
(3)、在索引數(shù)據(jù)庫(kù)中搜索排序,就是當(dāng)用戶輸入關(guān)鍵詞搜索后,由搜索系統(tǒng)程序從網(wǎng)頁(yè)索引數(shù)據(jù)庫(kù)中找到符合該關(guān)鍵詞的所有相關(guān)網(wǎng)頁(yè)。因?yàn)樗邢嚓P(guān)網(wǎng)頁(yè)針對(duì)該關(guān)鍵詞的相關(guān)度早已算好,所以只需按照現(xiàn)成的相關(guān)度數(shù)值排序,相關(guān)度越高,網(wǎng)站排名越靠前。最后,由頁(yè)面生成系統(tǒng)將搜索結(jié)果的鏈接地址和頁(yè)面內(nèi)容摘要等內(nèi)容組織起來(lái)返回給用戶。
一、網(wǎng)頁(yè)搜集。
搜索引擎網(wǎng)頁(yè)的搜集過(guò)程并不是在用戶提交關(guān)鍵詞后進(jìn)行及時(shí)的搜索,而是預(yù)先將網(wǎng)頁(yè)搜集好并進(jìn)行相關(guān)處理之后等待用戶的查詢。我們知道,在網(wǎng)絡(luò)比較暢通的情況下,從網(wǎng)上下載一篇網(wǎng)頁(yè)大概需要1秒鐘,因此如果用戶在查詢的時(shí)候即時(shí)去網(wǎng)上抓來(lái)成千上萬(wàn)的網(wǎng)頁(yè),一個(gè)個(gè)分析處理后再和用戶的查詢匹配,這樣的查詢時(shí)間就會(huì)很慢也不可能滿足用戶的需求。有可能多個(gè)用戶重復(fù)抓取同一個(gè)頁(yè)面,使系統(tǒng)的效益低下。面對(duì)大量的用戶查詢,不可能每來(lái)一個(gè)查詢,系統(tǒng)就到網(wǎng)上“搜索” 一次。大規(guī)模的搜索引擎是將一批預(yù)先搜集好的網(wǎng)頁(yè)進(jìn)行管理和維護(hù)。如何維護(hù)?有兩種基本的方法。
A、定期搜索法:每次搜集替換上一次的內(nèi)容,我們稱之為“批量搜集”。由于每次都是重新來(lái)一次,對(duì)于大規(guī)模搜索引擎來(lái)說(shuō),每次搜索的時(shí)間都會(huì)花費(fèi)幾周的時(shí)間。這樣的開(kāi)銷比較大,通常兩次搜集的時(shí)間間隔也很長(zhǎng)(如早期天網(wǎng)的版本大概每3個(gè)月搜索一次,google在一段時(shí)間曾是每隔28天搜索一次)。這種方法的好處是系統(tǒng)實(shí)現(xiàn)比較簡(jiǎn)單,缺點(diǎn)是實(shí)時(shí)性不高,還有重復(fù)搜集所帶來(lái)的額外寬帶的消耗。
B、增量搜集法:最初時(shí)搜集好一批數(shù)據(jù),以后只是新出現(xiàn)的網(wǎng)頁(yè)和改變的網(wǎng)頁(yè)并刪除不再存在的網(wǎng)頁(yè)。除了新聞網(wǎng)站外,許多網(wǎng)頁(yè)的內(nèi)容并不是經(jīng)常變化的,這樣一來(lái)每次搜集的網(wǎng)頁(yè)量不會(huì)很大,于是可以經(jīng)常去搜集。30萬(wàn)個(gè)網(wǎng)頁(yè),一臺(tái)pc機(jī),在一般的網(wǎng)絡(luò)條件下,半天也就搜集完了。這樣的系統(tǒng)表現(xiàn)出來(lái)的信息實(shí)時(shí)性就會(huì)比較高,主要缺點(diǎn)是系統(tǒng)實(shí)現(xiàn)比較復(fù)雜。
在具體搜集過(guò)程中,如何抓取一篇篇的網(wǎng)頁(yè),可以有不同的考慮。最常見(jiàn)的是一種所謂“爬取”的過(guò)程,具體過(guò)程是:將Web上的網(wǎng)頁(yè)集合看作十億個(gè)有向圖,搜集過(guò)程從給定的起始URL的集合S(或者說(shuō)種子)開(kāi)始,沿著網(wǎng)頁(yè)中的鏈接,按照先深、先寬或者別的某種策略遍歷,不停的從S中移除URL,下載相應(yīng)的網(wǎng)頁(yè),解析出網(wǎng)頁(yè)中的超鏈接URL,看是否已經(jīng)被訪問(wèn)過(guò),將未訪問(wèn)的那些URL加入集合S。整個(gè)過(guò)程可以形象地想象為一個(gè)蜘蛛(Spider)在蜘蛛網(wǎng)上(Web)上爬行。一個(gè)真正的系統(tǒng)其實(shí)是多個(gè)“蜘蛛”同時(shí)在爬。
這種方法實(shí)現(xiàn)起來(lái)并不算困難,但需要注意的是在實(shí)現(xiàn)過(guò)程中通過(guò)一定的策略,使收集到的某些網(wǎng)頁(yè)相對(duì)比較"重要"。我們知道任何搜索引擎是不可能將Web上網(wǎng)頁(yè)搜集完全的,通常都是在某些條件的限制下來(lái)結(jié)束搜集的過(guò)程(如磁盤滿,或者搜集時(shí)間已經(jīng)太長(zhǎng)了)。因此就有了一個(gè)盡量使搜到的網(wǎng)頁(yè)比較重要的問(wèn)題,這對(duì)于那些并不追求很大的數(shù)量覆蓋率的搜索引擎特別重要。一般情況下按照先款搜索方式得到網(wǎng)頁(yè)集合比先深搜索得到的集合重要。
另外一種可能的方式是在第一次全面網(wǎng)頁(yè)搜集后,系統(tǒng)維護(hù)相應(yīng)的URL集合S,往后的搜集直接基于這個(gè)集合。每搜到一個(gè)網(wǎng)頁(yè),如果它發(fā)生變化并含有新的 URL,則將它們對(duì)應(yīng)的網(wǎng)頁(yè)也抓回來(lái),并將這些新URL也放到集合S中;如果S中某個(gè)URL對(duì)應(yīng)的網(wǎng)頁(yè)不存在了,則將它從S中刪除。這種方式也可以看成是一種極端的先款搜索,即第一層是一個(gè)很大的集合,往下最多只延伸一層。
還有一種方法是讓網(wǎng)站擁有者主動(dòng)向搜索引擎提交他們的網(wǎng)址,系統(tǒng)在一定時(shí)間內(nèi)向那些網(wǎng)站派出“蜘蛛”程序,掃描該網(wǎng)站的所有網(wǎng)頁(yè)并將有關(guān)信息存入數(shù)據(jù)庫(kù)中。大型商業(yè)搜索引擎一般都提供這種功能。
搜索引擎的工作原理(二)
互聯(lián)網(wǎng)上大部分信息都是以HTML格式存在,對(duì)于索引來(lái)說(shuō),只處理文本信息。因此需要把網(wǎng)頁(yè)中的文本內(nèi)容提取出來(lái),過(guò)濾掉一些腳本標(biāo)識(shí)符和一些無(wú)用的廣告信息,同時(shí)記錄文本的版面格式信息。網(wǎng)頁(yè)處理主要包括四個(gè)方面:關(guān)鍵詞的提取、重復(fù)或轉(zhuǎn)載網(wǎng)頁(yè)的消除、鏈接分析和網(wǎng)頁(yè)重要程度的計(jì)算。
一、關(guān)鍵詞的提取:由于HTML文檔產(chǎn)生來(lái)源的多樣性,許多網(wǎng)頁(yè)在內(nèi)容上比較隨意,不僅文字不講究規(guī)范、完整,而且還可能包含許多和主要內(nèi)容無(wú)關(guān)的信息(如廣告、導(dǎo)航條、版權(quán)說(shuō)明等)。為了支持查詢服務(wù),需要從網(wǎng)頁(yè)源文件中提取能夠代表它的內(nèi)容的一些特征—關(guān)鍵詞。
網(wǎng)頁(yè)處理階段的一個(gè)基本任務(wù),就是要提取出網(wǎng)頁(yè)源文件的內(nèi)容部分所包含的關(guān)鍵詞。對(duì)于中文來(lái)說(shuō),就是要根據(jù)一個(gè)詞典,用一個(gè)“切詞軟件”,從網(wǎng)頁(yè)文字中切出詞典所含的詞語(yǔ)來(lái)。這樣一片網(wǎng)頁(yè)就可以由一組詞來(lái)近似代表了,p={t1、t2、t3、t4......tn}。一般來(lái)講,可能得到很多的詞,同一個(gè)詞可能在一篇網(wǎng)頁(yè)中多次出現(xiàn)。從效果和效率來(lái)考慮,不應(yīng)該讓所所有的詞都出現(xiàn)在網(wǎng)頁(yè)的表示中,要去掉諸如“的”、“在”等沒(méi)有內(nèi)容指示意義的詞,稱為 “停用詞”(Stop Word)。這樣,對(duì)一篇網(wǎng)頁(yè)來(lái)說(shuō),有效的詞語(yǔ)數(shù)量大約為200。
二、重復(fù)或轉(zhuǎn)載網(wǎng)頁(yè)的消除:我們知道Web上的信息存在大量的重復(fù)現(xiàn)象。統(tǒng)計(jì)分析表明,網(wǎng)頁(yè)的重復(fù)率平均大約為4。也就是說(shuō),當(dāng)通過(guò)一個(gè)URL在網(wǎng)上看到一篇網(wǎng)頁(yè)的時(shí)候,還有另外三個(gè)不同的URL也給出相同或者基本相似的內(nèi)容。這種現(xiàn)象對(duì)于搜索引擎來(lái)說(shuō),它在搜集網(wǎng)頁(yè)的時(shí)要消耗機(jī)器時(shí)間和網(wǎng)絡(luò)寬帶資源,而且如果在查詢的結(jié)果中出現(xiàn),將消耗查詢者計(jì)算機(jī)的資源,也會(huì)引來(lái)用戶的抱怨。因此,消除內(nèi)容重復(fù)或主題重復(fù)的網(wǎng)頁(yè)是網(wǎng)頁(yè)處理階段的一個(gè)重要任務(wù)。
三、鏈接分析:從信息檢索的角度講,如果系統(tǒng)僅僅面對(duì)的是內(nèi)容的文字,我們能依據(jù)關(guān)鍵詞和關(guān)鍵詞在文檔中集合出現(xiàn)的頻率來(lái)統(tǒng)計(jì)該詞的相對(duì)重要性以及和某些內(nèi)容的相關(guān)性。有了HTML標(biāo)記后,情況可能進(jìn)一步改善,例如,在同一篇HTML中,<H1>和</H1>之間的信息很可能就比在<H4>和</H4>之間的信息更重要。尤其HTML文檔中所含的指向其他文檔的鏈接信息是人們特別關(guān)注的的對(duì)象,認(rèn)為它們不僅給出了網(wǎng)頁(yè)之間的關(guān)系,而且還對(duì)判斷網(wǎng)頁(yè)的內(nèi)容有很重要的作用。
四、網(wǎng)頁(yè)重要度的計(jì)算:搜索引擎返回給用戶的,是一個(gè)和用戶查詢相關(guān)的結(jié)果列表。列表中條目的順序是很重要的一個(gè)問(wèn)題。不同的順序到達(dá)的結(jié)果是不一樣的,因此搜索引擎實(shí)際上追求的是一種統(tǒng)計(jì)意義上的滿意。例如,人們認(rèn)為利用google查詢比較好,是因?yàn)樵诙鄶?shù)情況下google返回的內(nèi)容更要符合用戶的需要。
如何對(duì)查詢結(jié)果進(jìn)行排序有很多因素需要考慮,如何理解一篇網(wǎng)頁(yè)比另外一篇網(wǎng)頁(yè)重要?人們參照科技文檔重要性的評(píng)估方式,核心思想就是“被引用的最多的就是最好的”。“引用”這個(gè)概念恰好可以通過(guò)在網(wǎng)頁(yè)之間的超鏈進(jìn)行體現(xiàn),作為google創(chuàng)立核心技術(shù)的Page-Rank就是這種思路的成功體現(xiàn)。除此以外,人們還注意到網(wǎng)頁(yè)和文檔的不同特點(diǎn),即一些網(wǎng)頁(yè)主要是大量的對(duì)外鏈接,其本身基本沒(méi)有一個(gè)明確的主題內(nèi)容,而另外有些網(wǎng)頁(yè)則被大量的其他網(wǎng)頁(yè)鏈接。從某種意義上講,這形成了一種對(duì)偶的關(guān)系,這種關(guān)系可以使得人們?cè)诰W(wǎng)頁(yè)上建立另外一種重要性指標(biāo)。這些指標(biāo)有的可以在網(wǎng)頁(yè)處理階段計(jì)算,有的則要在查詢階段計(jì)算,但都是作為查詢服務(wù)階段最終形成結(jié)果排序的部分參數(shù)。
搜索引擎的工作原理(三)
為了完成查詢服務(wù),需要有相應(yīng)的元素來(lái)進(jìn)行表達(dá),這些元素主要有:原始網(wǎng)頁(yè)文檔、URL和標(biāo)題、編號(hào)、所含重要關(guān)鍵詞的集合以及它們?cè)谖臋n中出現(xiàn)的位置信息、其他一些指標(biāo),如重要程度、代碼等。
用戶通過(guò)搜索引擎看到的不是一個(gè)“集合”,而是一個(gè)“列表”。如何從集合產(chǎn)生成一個(gè)列表,是服務(wù)子系統(tǒng)的主要工作。服務(wù)子系統(tǒng)是在服務(wù)進(jìn)行的過(guò)程中涉及相關(guān)軟件程序,而網(wǎng)頁(yè)處理子系統(tǒng)事先為這些軟件程序準(zhǔn)備了相應(yīng)的數(shù)據(jù)。服務(wù)子系統(tǒng)的工作原理,主要有4個(gè)方面。
一、查詢方式和匹配。
查詢方式指的是系統(tǒng)允許用戶提交查詢的方式。對(duì)于普通用戶來(lái)說(shuō),最自然的方式就是“需要查詢什么就輸入什么”。例如,用戶輸入“搜索引擎”,可能是他想了解搜索引擎的相關(guān)定義、概念和相應(yīng)的知識(shí);也可能是想了解目前有哪些搜索引擎,如何進(jìn)行搜索等內(nèi)容;也有可能是用戶關(guān)心的是間接的信息。目前用一個(gè)詞或者短語(yǔ)來(lái)進(jìn)行查詢,依然是主流的查詢模式,這種模式比較簡(jiǎn)單并且容易實(shí)現(xiàn)。
詞的是搜索引擎中非常關(guān)鍵的一部分,通過(guò)字典文件對(duì)網(wǎng)頁(yè)內(nèi)的詞進(jìn)行識(shí)別。對(duì)于西文信息來(lái)說(shuō),需要識(shí)別詞的不同形式,例如:?jiǎn)螐?fù)數(shù)、過(guò)去式、組合詞、詞根等,對(duì)于一些亞洲語(yǔ)言(中文、日文、韓文等)需要進(jìn)行分詞處理。識(shí)別出網(wǎng)頁(yè)中的每個(gè)詞,并分配唯一的wordID號(hào),用于為數(shù)據(jù)索引中的索引模塊服務(wù)。
例如:當(dāng)用戶輸入“搜索引擎教程”時(shí),系統(tǒng)首先將這個(gè)短語(yǔ)進(jìn)行分詞處理,將其分為“搜索 引擎 教程”,然后刪除那些沒(méi)有查詢意義或者在每篇文檔中都會(huì)出現(xiàn)的詞,最后形成一個(gè)用于參與匹配的查詢?cè)~表,該詞表的數(shù)據(jù)結(jié)構(gòu)是一個(gè)用對(duì)應(yīng)的分詞作為索引的一個(gè)倒排文件,它的每一個(gè)元素都對(duì)應(yīng)倒排文件。這樣系統(tǒng)就完成了查詢和文檔的匹配。
二、索引庫(kù)的建立。
索引庫(kù)的建立是數(shù)據(jù)索引中結(jié)構(gòu)最復(fù)雜的一部分。一般需要建立兩種索引:文檔索引和關(guān)鍵詞索引。文檔索引分配給每個(gè)網(wǎng)頁(yè)唯一的docID號(hào),根據(jù)docID 號(hào)索引出在這個(gè)網(wǎng)頁(yè)中出現(xiàn)過(guò)多少個(gè)wordID,每個(gè)wordID出現(xiàn)的次數(shù)、位置、大小格式等,形成docID對(duì)應(yīng)wordID的數(shù)據(jù)列表;關(guān)鍵詞索引其實(shí)是對(duì)文檔索引的的逆索引,根據(jù)wordID索引出這個(gè)詞出現(xiàn)在哪些網(wǎng)頁(yè)(用wordID表示),出現(xiàn)在每個(gè)網(wǎng)頁(yè)的次數(shù)、位置、大小寫格式等,形成 wordID對(duì)應(yīng)docID的列表。
三、結(jié)果排序。
結(jié)果就是將查詢的結(jié)果的集合以列表的方式顯示出來(lái)。所謂列表,就是按照某種評(píng)價(jià)方式,確定出查詢結(jié)果集合中元素的順序,讓這些元素以某種順序呈現(xiàn)出來(lái),這就是相關(guān)性。相關(guān)性是形成這種查詢順序的的基本因素,有效地定義相關(guān)性本身是很難的,從原理上講它不僅和查詢?cè)~有關(guān),而且還和用戶的查詢背景,以及用戶的查詢歷史有關(guān)。不同需求的用戶可能輸入同一個(gè)查詢,同一個(gè)用戶在不同的時(shí)間輸入的相同查詢可能是針對(duì)不同的需求的。
一般來(lái)講,結(jié)果排序的方法是基于詞匯出現(xiàn)頻率,也就是說(shuō)在一篇文檔中包含的查詢?cè)~越多,則該文檔就越應(yīng)該排在前面。這樣的思路有一定的道理,而且在倒排文件數(shù)據(jù)結(jié)構(gòu)上很容易實(shí)現(xiàn)。當(dāng)我們通過(guò)關(guān)鍵詞的提取過(guò)程,形成一篇文檔的關(guān)鍵詞的集合后,很容易得到每一個(gè)詞在文檔中出現(xiàn)的次數(shù),即詞率,而倒排文件中每個(gè)倒排表的長(zhǎng)度則對(duì)應(yīng)著每個(gè)詞所涉及的文檔的篇數(shù),即文檔頻率。然而,由于網(wǎng)頁(yè)編寫的自發(fā)性、隨意性較強(qiáng),僅僅針對(duì)關(guān)鍵詞的出現(xiàn)來(lái)決定文檔的順序,在Web 上做信息檢索表現(xiàn)出明顯的缺點(diǎn),需要有其他技術(shù)的補(bǔ)充。通過(guò)在網(wǎng)頁(yè)處理階段為每篇網(wǎng)頁(yè)形成一個(gè)獨(dú)立于查詢?cè)~(也就是和網(wǎng)頁(yè)內(nèi)容無(wú)關(guān))的重要性指標(biāo),將它和查詢過(guò)程中形成的相關(guān)性指標(biāo)結(jié)合形成一個(gè)最終的排序,是目前搜索引擎給出查詢結(jié)果排序的主要方法。
搜索的處理過(guò)程是對(duì)用戶的搜索請(qǐng)求進(jìn)行滿足的過(guò)程,通過(guò)用戶輸入搜索關(guān)鍵詞,搜索服務(wù)器對(duì)應(yīng)關(guān)鍵詞字典,把搜索關(guān)鍵詞轉(zhuǎn)化為wordID,然后在索引庫(kù)中得到docID列表,對(duì)docID列表進(jìn)行掃描和wordID的匹配,提取滿足條件的網(wǎng)頁(yè),然后計(jì)算網(wǎng)頁(yè)和關(guān)鍵詞的相關(guān)度,根據(jù)相關(guān)度的數(shù)值返回給用戶。
四、文檔摘要。
搜索引擎給出的結(jié)果是一個(gè)有序的條目列表,每個(gè)條目中有3個(gè)基本元素:標(biāo)題、網(wǎng)頁(yè)描述、網(wǎng)址和摘要。其中摘要需要從網(wǎng)頁(yè)正文中生成。
一般來(lái)講,搜索引擎在生成摘要時(shí)可以歸納為兩種方式:一種是“靜態(tài)”方式,即獨(dú)立于查詢,按照某種股則,事先在預(yù)處理階段從網(wǎng)頁(yè)內(nèi)容中提取出一些文字,如截取網(wǎng)頁(yè)正文的開(kāi)頭512個(gè)字節(jié)(對(duì)應(yīng)256個(gè)漢字),或者將每一個(gè)段落的第一個(gè)句子拼起來(lái),等等。這樣形成的摘要存放在查詢子系統(tǒng)中,一旦相關(guān)文檔被選中與查詢匹配,就讀出返回給用戶。這種方式的優(yōu)點(diǎn)是實(shí)現(xiàn)起來(lái)比較容易,缺點(diǎn)是摘要可能和查詢的內(nèi)容無(wú)關(guān);另一種是“動(dòng)態(tài)摘要”方式,即在相應(yīng)查詢的時(shí)候,根據(jù)查詢?cè)~在文檔中的位置,提取出周圍的文字來(lái),在顯示時(shí)將查詢?cè)~標(biāo)亮。這是目前大多數(shù)搜索引擎采用的方式。為了保證查詢的效率,需要在預(yù)處理階段分詞的時(shí)候記住每個(gè)關(guān)鍵詞在文檔中出現(xiàn)的位置。