版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-搜索引擎基本工作原理

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶(hù)提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

搜索引擎的基本工作原理包括如下三個(gè)過(guò)程:首先在互聯(lián)網(wǎng)中發(fā)現(xiàn)、搜集網(wǎng)頁(yè)信息;同時(shí)對(duì)信息進(jìn)行提取和組織建立索引庫(kù);再由檢索器根據(jù)用戶(hù)輸入的查詢(xún)關(guān)鍵字,在索引庫(kù)中快速檢出文檔,進(jìn)行文檔與查詢(xún)的相關(guān)度評(píng)價(jià),對(duì)將要輸出的結(jié)果進(jìn)行排序,并將查詢(xún)結(jié)果返回給用戶(hù)。

工作原理搜索引擎為了以最快的速度得到搜索結(jié)果,它搜索的通常是預(yù)先整理好的網(wǎng)頁(yè)索引數(shù)據(jù)庫(kù)。搜索引擎,不能真正理解網(wǎng)頁(yè)上的內(nèi)容,它只能機(jī)械地匹配網(wǎng)頁(yè)上的文字。真正意義上的搜索引擎,通常指的是收集了互聯(lián)網(wǎng)上幾千萬(wàn)到幾十億個(gè)網(wǎng)頁(yè)并對(duì)網(wǎng)頁(yè)中的每一個(gè)文字(即關(guān)鍵詞)進(jìn)行索引,建立索引數(shù)據(jù)庫(kù)的全文搜索引擎。當(dāng)用戶(hù)查找某個(gè)關(guān)鍵詞的時(shí)候,所有在頁(yè)面內(nèi)容中包含了該關(guān)鍵詞的網(wǎng)頁(yè)都將作為搜索結(jié)果被搜出來(lái)。在經(jīng)過(guò)復(fù)雜的算法進(jìn)行排序后,這些結(jié)果將按照與搜索關(guān)鍵詞的相關(guān)度高低,依次排列。典型的搜索引擎三大模塊組成:

(一)信息采集模塊

信息采集器是一個(gè)可以瀏覽網(wǎng)頁(yè)的程序,被形容為“網(wǎng)絡(luò)爬蟲(chóng)”。它首先打開(kāi)一個(gè)網(wǎng)頁(yè),然后把該網(wǎng)頁(yè)的鏈接作為瀏覽的起始地址,把被鏈接的網(wǎng)頁(yè)獲取過(guò)來(lái),抽取網(wǎng)頁(yè)中出現(xiàn)的鏈接,并通過(guò)一定算法決定下一步要訪問(wèn)哪些鏈接。同時(shí),信息采集器將已經(jīng)訪問(wèn)過(guò)的URL存儲(chǔ)到自己的網(wǎng)頁(yè)列表并打上已搜索的標(biāo)記。自動(dòng)標(biāo)引程序檢查該網(wǎng)頁(yè)并為他創(chuàng)建一條索引記錄,然后將該記錄加入到整個(gè)查詢(xún)表中。信息收集器再以該網(wǎng)頁(yè)到超鏈接為起點(diǎn)繼續(xù)重復(fù)這一訪問(wèn)過(guò)程直至結(jié)束。一般搜索引擎的采集器在搜索過(guò)程中只取鏈長(zhǎng)比(超鏈接數(shù)目與文檔長(zhǎng)度的比值)小于某一閥值的頁(yè)面,數(shù)據(jù)采集于內(nèi)容頁(yè)面,不涉及目錄頁(yè)面。在采集文檔的同時(shí)記錄各文檔的地址信息、修改時(shí)間、文檔長(zhǎng)度等狀態(tài)信息,用于站點(diǎn)資源的監(jiān)視和資料庫(kù)的更新。在采集過(guò)程中還可以構(gòu)造適當(dāng)?shù)膯l(fā)策略,指導(dǎo)采集器的搜索路徑和采集范圍,減少文檔采集的盲目性。

(二)查詢(xún)表模塊

查詢(xún)表模塊是一個(gè)全文索引數(shù)據(jù)庫(kù),他通過(guò)分析網(wǎng)頁(yè),排除HTML等語(yǔ)言的標(biāo)記符號(hào),將出現(xiàn)的所有字或詞抽取出來(lái),并記錄每個(gè)字詞出現(xiàn)的網(wǎng)址及相應(yīng)位置(比如是出現(xiàn)在網(wǎng)頁(yè)標(biāo)題中,還是出現(xiàn)在簡(jiǎn)介或正文中),最后將這些數(shù)據(jù)存入查詢(xún)表,成為直接提供給用戶(hù)搜索的數(shù)據(jù)庫(kù)。

(三)檢索模塊

檢索模塊是實(shí)現(xiàn)檢索功能的程序,其作用是將用戶(hù)輸入的檢索表達(dá)式拆分成具有檢索意義的字或詞,再訪問(wèn)查詢(xún)表,通過(guò)一定的匹配算法獲得相應(yīng)的檢索結(jié)果。返回的結(jié)果一般根據(jù)詞頻和網(wǎng)頁(yè)鏈接中反映的信息建立統(tǒng)計(jì)模型,按相關(guān)度由高到低的順序輸出。1

工作機(jī)制搜索引擎的工作機(jī)制就是采用高效的蜘蛛程序,從指定URL開(kāi)始順著網(wǎng)頁(yè)上的超鏈接,采用深度優(yōu)先算法或廣度優(yōu)先算法對(duì)整個(gè)Internet進(jìn)行遍歷,將網(wǎng)頁(yè)信息抓取到本地?cái)?shù)據(jù)庫(kù)。然后使用索引器對(duì)數(shù)據(jù)庫(kù)中的重要信息單元,如標(biāo)題,關(guān)鍵字及摘要等或者全文進(jìn)行索引,以供查詢(xún)導(dǎo)航。最后,檢索器將用戶(hù)通過(guò)瀏覽器提交的查詢(xún)請(qǐng)求與索引數(shù)據(jù)庫(kù)中的信息以某種檢索技術(shù)進(jìn)行匹配,再將檢索結(jié)果按某種排序方法返回給用戶(hù)。

工作流程(1)在互聯(lián)中發(fā)現(xiàn)、搜集網(wǎng)頁(yè)信息

搜索引擎首先負(fù)責(zé)數(shù)據(jù)采集,即按照一定的方式和要求對(duì)網(wǎng)絡(luò)上的WWW站點(diǎn)進(jìn)行搜集,并把所獲得的信息保存下來(lái)以備建立索引庫(kù)和用戶(hù)檢索。但是收集網(wǎng)頁(yè)只是搜索引擎的一部分工作,他們的其他服務(wù)器要做的還有進(jìn)行計(jì)算/分配/儲(chǔ)存用戶(hù)習(xí)慣等等。

(2)對(duì)信息進(jìn)行提取和組織建立索引庫(kù)

首先是數(shù)據(jù)分析與標(biāo)引,搜索引擎對(duì)已經(jīng)收集到的資料給與按照網(wǎng)頁(yè)中的字符特性予以分類(lèi),建立搜索原則,舉例來(lái)說(shuō),對(duì)于"軟件"這個(gè)詞,它必須建立一個(gè)索引,當(dāng)用戶(hù)查找的時(shí)候,他知道到這里來(lái)調(diào)取資料。當(dāng)然,對(duì)于網(wǎng)頁(yè)語(yǔ)言,該字符的處理(大小寫(xiě)/中文的斷字方式等等)等方面,各個(gè)搜索引擎都有自己的存檔歸類(lèi)方式,這些方式往往影響著未來(lái)搜索結(jié)果。接下來(lái)是數(shù)據(jù)組織,搜索引擎負(fù)責(zé)形成規(guī)范的索引數(shù)據(jù)庫(kù)或便于瀏覽的層次型分類(lèi)目錄結(jié)構(gòu),也就是計(jì)算網(wǎng)頁(yè)等級(jí),這個(gè)原則特別是在Google非常重要,一個(gè)接受很多鏈接的網(wǎng)頁(yè),搜索引擎必然在所有的網(wǎng)頁(yè)當(dāng)中將這些連接多的網(wǎng)頁(yè)提升上來(lái)。

(3)在索引數(shù)據(jù)庫(kù)中搜索排序

由檢索器根據(jù)用戶(hù)輸入的查詢(xún)關(guān)鍵字,在索引庫(kù)中快速檢出文檔,進(jìn)行文檔與查詢(xún)的相關(guān)度評(píng)價(jià),對(duì)將要輸出的結(jié)果進(jìn)行排序,并將查詢(xún)結(jié)果返回給用戶(hù)。搜索引擎負(fù)責(zé)幫助用戶(hù)用一定的方式檢索索引數(shù)據(jù)庫(kù),獲取符合用戶(hù)需要的WWW信息。搜索引擎還負(fù)責(zé)提取用戶(hù)相關(guān)信息,利用這些信息來(lái)提高檢索服務(wù)的質(zhì)量,信息挖掘在個(gè)性化服務(wù)中起到關(guān)鍵作用。用戶(hù)檢索的過(guò)程是對(duì)前兩個(gè)過(guò)程的檢驗(yàn),檢驗(yàn)該搜索引擎能否給出最準(zhǔn)確、最廣泛的信息,檢驗(yàn)該搜索引擎能否迅速地給出用戶(hù)最想得到的信息。2

搜索引擎在搜索引擎分類(lèi)部分我們提到過(guò)全文搜索引擎從網(wǎng)站提取信息建立網(wǎng)頁(yè)數(shù)據(jù)庫(kù)的概念。搜索引擎的自動(dòng)信息搜集功能分兩種。一種是定期搜索,即每隔一段時(shí)間(比如Google一般是28天),搜索引擎主動(dòng)派出“蜘蛛”程序,對(duì)一定IP地址范圍內(nèi)的互聯(lián)網(wǎng)站進(jìn)行檢索,一旦發(fā)現(xiàn)新的網(wǎng)站,它會(huì)自動(dòng)提取網(wǎng)站的信息和網(wǎng)址加入自己的數(shù)據(jù)庫(kù)。

另一種是提交網(wǎng)站搜索,即網(wǎng)站擁有者主動(dòng)向搜索引擎提交網(wǎng)址,它在一定時(shí)間內(nèi)(2天到數(shù)月不等)定向向你的網(wǎng)站派出“蜘蛛”程序,掃描你的網(wǎng)站并將有關(guān)信息存入數(shù)據(jù)庫(kù),以備用戶(hù)查詢(xún)。由于搜索引擎索引規(guī)則發(fā)生了很大變化,主動(dòng)提交網(wǎng)址并不保證你的網(wǎng)站能進(jìn)入搜索引擎數(shù)據(jù)庫(kù),因此目前最好的辦法是多獲得一些外部鏈接,讓搜索引擎有更多機(jī)會(huì)找到你并自動(dòng)將你的網(wǎng)站收錄。

當(dāng)用戶(hù)以關(guān)鍵詞查找信息時(shí),搜索引擎會(huì)在數(shù)據(jù)庫(kù)中進(jìn)行搜尋,如果找到與用戶(hù)要求內(nèi)容相符的網(wǎng)站,便采用特殊的算法——通常根據(jù)網(wǎng)頁(yè)中關(guān)鍵詞的匹配程度,出現(xiàn)的位置、頻次,鏈接質(zhì)量等——計(jì)算出各網(wǎng)頁(yè)的相關(guān)度及排名等級(jí),然后根據(jù)關(guān)聯(lián)度高低,按順序?qū)⑦@些網(wǎng)頁(yè)鏈接返回給用戶(hù)。3

性能指標(biāo)在通常情況下,我們可以從以下幾個(gè)方面來(lái)衡量一個(gè)搜索引擎的性能:

查全率指搜索引擎提供的檢索結(jié)果中相關(guān)文檔數(shù)與網(wǎng)絡(luò)中存在的相關(guān)文檔數(shù)之比,他是搜索引擎對(duì)網(wǎng)絡(luò)信息覆蓋率的真實(shí)反映。

查準(zhǔn)率是搜索引擎提供的檢索結(jié)果與用戶(hù)信息需求的匹配程度,也是檢索結(jié)果中有效文檔數(shù)與搜索引擎提供的全部文檔數(shù)之比。

響應(yīng)時(shí)間一般而言取決于2個(gè)因素,即與帶寬有關(guān)的網(wǎng)絡(luò)速度和搜索引擎本身的速度,只有在二者均獲得可靠的技術(shù)支持的情況下,才能保證理想的檢索速度。對(duì)搜索引擎來(lái)講,查全率和查準(zhǔn)率很難做到兩全其美,影響搜索引擎的性能的主要是信息檢索模型,包括文檔和查詢(xún)的表示方法、評(píng)價(jià)文檔和用戶(hù)查詢(xún)相關(guān)性的匹配策略、查詢(xún)結(jié)果的排序方法和用戶(hù)進(jìn)行相關(guān)度反饋的機(jī)制。

本詞條內(nèi)容貢獻(xiàn)者為:

徐恒山 - 講師 - 西北農(nóng)林科技大學(xué)