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

[科普中國]-搜索引擎原理

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

搜索引擎,通常指的是收集了萬維網(wǎng)上幾千萬到幾十億個(gè)網(wǎng)頁并對網(wǎng)頁中的每一個(gè)詞(即關(guān)鍵詞)進(jìn)行索引,建立索引數(shù)據(jù)庫的全文搜索引擎。當(dāng)用戶查找某個(gè)關(guān)鍵詞的時(shí)候,所有在頁面內(nèi)容中包含了該關(guān)鍵詞的網(wǎng)頁都將作為搜索結(jié)果被搜出來。再經(jīng)過復(fù)雜的算法進(jìn)行排序(或者包含商業(yè)化的競價(jià)排名、商業(yè)推廣或者廣告)后,這些結(jié)果將按照與搜索關(guān)鍵詞的相關(guān)度高低(或與相關(guān)度毫無關(guān)系),依次排列。

引擎結(jié)構(gòu)搜索引擎基本結(jié)構(gòu)一般包括:搜索器、索引器、檢索器、用戶接口等四個(gè)功能模塊。

1)搜索器,也叫網(wǎng)絡(luò)蜘蛛,是搜索引擎用來爬行和抓取網(wǎng)頁的一個(gè)自動(dòng)程序,在系統(tǒng)后臺(tái)不停歇地在互聯(lián)網(wǎng)各個(gè)節(jié)點(diǎn)爬行,在爬行過程中盡可能快的發(fā)現(xiàn)和抓取網(wǎng)頁。

2)索引器。它的主要功能是理解搜索器所采集的網(wǎng)頁信息,并從中抽取索引項(xiàng)。

3)檢索器。其功能是快速查找文檔,進(jìn)行文檔與查詢的相關(guān)度評價(jià),對要輸出的結(jié)果進(jìn)行排序。

4)用戶接口。它為用戶提供可視化的查詢輸入和結(jié)果輸出的界面。1

分類1、全文搜索引擎

全文搜索引擎一般都有一種叫作“網(wǎng)絡(luò)機(jī)器人”或“網(wǎng)絡(luò)蜘蛛”的軟件,這些軟件能遍歷WEB空間,掃描一定IP范圍內(nèi)的網(wǎng)站,并延著網(wǎng)絡(luò)上的鏈接從一個(gè)網(wǎng)頁到另一個(gè)網(wǎng)頁,從一個(gè)網(wǎng)站到另一個(gè)網(wǎng)站采集網(wǎng)頁資料。為了保持網(wǎng)頁資料的最新,它還會(huì)回訪已抓取的網(wǎng)頁。對已經(jīng)抓取到的網(wǎng)頁,搜索引擎還會(huì)用一定的程序進(jìn)行分析,根據(jù)一定的相關(guān)度算法建立網(wǎng)頁索引,添加到索引數(shù)據(jù)庫中。全文搜索引擎因?yàn)橐揽寇浖M(jìn)行采集網(wǎng)頁,所以數(shù)據(jù)庫的容量非常龐大,但是,它的查詢結(jié)果往往不夠準(zhǔn)確。我們平時(shí)看到的全文搜索引擎,實(shí)際上是只是一個(gè)搜索引擎的搜索界面。當(dāng)我們輸入關(guān)鍵字進(jìn)行查詢時(shí),搜索引擎便會(huì)從寵大的索引數(shù)據(jù)庫中找到包含該關(guān)鍵字的所有相關(guān)網(wǎng)頁的索引,并按一定的排名規(guī)則呈現(xiàn)給我們。不同的搜索引擎,網(wǎng)頁索引數(shù)據(jù)庫也不同,排名規(guī)則也不盡相同,所以當(dāng)我們以同一關(guān)鍵字在不同的搜索引擎上進(jìn)行查詢時(shí),搜索的結(jié)果和排列順序通常也不相同。

2、分類目錄搜索引擎

和全文搜索引擎一樣,分類目錄搜索引擎的整個(gè)工作過程同樣也經(jīng)過收集信息、分析信息和查詢信息三部分,只不過分類目錄搜索引擎的前兩部分,收集信息和分析信息全部由人工來完成。分類目錄一般都有專門的編輯人員,負(fù)責(zé)收集網(wǎng)站的信息。分類目錄依靠人工收集和整理網(wǎng)站,能夠提供更為準(zhǔn)確的查詢結(jié)果,但收集的內(nèi)容卻非常有限。

3、元搜索引擎

這類搜索引擎一般都沒有自己的網(wǎng)頁搜索軟件以及數(shù)據(jù)庫,它的搜索結(jié)果是通過調(diào)用、控制和優(yōu)化其它多個(gè)獨(dú)立搜索引擎的搜索結(jié)果并以一定的格式在同一界面集中顯示。通常元搜索引擎在索引請求提交、檢索接口代理和檢索接口顯示等方面,均有自己開發(fā)的具有特色的元搜索技術(shù)。在搜索結(jié)果上,這些元搜索引擎往往搜索范圍更大一些。

4、集成搜索引擎

集成搜索引擎是通過網(wǎng)絡(luò)技術(shù)在一個(gè)網(wǎng)頁上鏈接很多個(gè)獨(dú)立的搜索引擎,查詢時(shí),點(diǎn)選或指定搜索引擎,一次輸入,多個(gè)搜索引擎同時(shí)查詢。搜索的結(jié)果由各個(gè)搜索引擎分別以不同的頁面顯示。2

工作原理搜索引擎的工作原理是從互聯(lián)網(wǎng)上抓取網(wǎng)頁,建立索引數(shù)據(jù)庫,在索引數(shù)據(jù)庫中搜索排序。它的整個(gè)工作過程大體分為信息采集、信息分析、信息查詢和用戶接口四部分。信息采集是網(wǎng)絡(luò)機(jī)器人掃描一定IP地址范圍內(nèi)的網(wǎng)站,通過鏈接遍歷Web空間,來進(jìn)行采集網(wǎng)頁資料,為保證采集的資料最新,網(wǎng)絡(luò)機(jī)器人還會(huì)回訪已抓取過的網(wǎng)頁;信息分析是通過分析程序,從采集的信息中提取索引項(xiàng),用索引項(xiàng)表示文檔并生成文檔庫的索引表,從而建立索引數(shù)據(jù)庫;信息查詢是指用戶以關(guān)鍵詞查找信息時(shí),搜索引擎會(huì)根據(jù)用戶的查詢條件在索引庫中快速檢索文檔,然后對檢出的文檔與查詢條件的相關(guān)度進(jìn)行評價(jià),最后根據(jù)相關(guān)度對檢索結(jié)果進(jìn)行排序并輸出。3

工作流程爬行和抓取搜索引擎派出一個(gè)能夠在網(wǎng)上發(fā)現(xiàn)新網(wǎng)頁并抓文件的程序,這個(gè)程序通常稱之為蜘蛛(Spider)。搜索引擎從已知的數(shù)據(jù)庫出發(fā),就像正常用戶的瀏覽器一樣訪問這些網(wǎng)頁并抓取文件。搜索引擎通過這些爬蟲去爬互聯(lián)網(wǎng)上的外鏈,從這個(gè)網(wǎng)站爬到另一個(gè)網(wǎng)站,去跟蹤網(wǎng)頁中的鏈接,訪問更多的網(wǎng)頁,這個(gè)過程就叫爬行。這些新的網(wǎng)址會(huì)被存入數(shù)據(jù)庫等待搜索。所以跟蹤網(wǎng)頁鏈接是搜索引擎蜘蛛(Spider)發(fā)現(xiàn)新網(wǎng)址的最基本的方法,所以反向鏈接成為搜索引擎優(yōu)化的最基本因素之一。搜索引擎抓取的頁面文件與用戶瀏覽器得到的完全一樣,抓取的文件存入數(shù)據(jù)庫。

建立索引蜘蛛抓取的頁面文件分解、分析,并以巨大表格的形式存入數(shù)據(jù)庫,這個(gè)過程即是索引(index)。在索引數(shù)據(jù)庫中,網(wǎng)頁文字內(nèi)容,關(guān)鍵詞出現(xiàn)的位置、字體、顏色、加粗、斜體等相關(guān)信息都有相應(yīng)記錄。

搜索詞處理用戶在搜索引擎界面輸入關(guān)鍵詞,單擊“搜索”按鈕后,搜索引擎程序即對搜索詞進(jìn)行處理,如中文特有的分詞處理,去除停止詞,判斷是否需要啟動(dòng)整合搜索,判斷是否有拼寫錯(cuò)誤或錯(cuò)別字等情況。搜索詞的處理必須十分快速。

排序?qū)λ阉髟~處理后,搜索引擎程序便開始工作,從索引數(shù)據(jù)庫中找出所有包含搜索詞的網(wǎng)頁,并且根據(jù)排名算法計(jì)算出哪些網(wǎng)頁應(yīng)該排在前面,然后按照一定格式返回到“搜索”頁面。再好的搜索引擎也無法與人相比,這就是為什么網(wǎng)站要進(jìn)行搜索引擎優(yōu)化(SEO)。沒有SEO的幫助,搜索引擎常常并不能正確的返回最相關(guān)、最權(quán)威、最有用的信息。4

數(shù)據(jù)結(jié)構(gòu)倒排是搜索引擎常用的數(shù)據(jù)結(jié)構(gòu)之一,倒排索引是指用記錄的非主屬性值(也叫副鍵)來查找記錄而組織的文件叫倒排文件,即次索引。倒排文件中包括了所有副鍵值,并列出了與之有關(guān)的所有記錄主鍵值,主要用于復(fù)雜查詢。 與傳統(tǒng)的SQL查詢不同,在搜索引擎收集完數(shù)據(jù)的預(yù)處理階段,搜索引擎往往需要一種高效的數(shù)據(jù)結(jié)構(gòu)來對外提供檢索服務(wù)。而現(xiàn)行最有效的數(shù)據(jù)結(jié)構(gòu)就是“倒排文件”。倒排文件簡單一點(diǎn)可以定義為用文檔的關(guān)鍵詞作為索引,文檔作為索引目標(biāo)的一種結(jié)構(gòu)(類似于普通書籍中,索引是關(guān)鍵詞,書的頁面是索引目標(biāo))。

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

蘇智勇 - 副教授 - 南京理工大學(xué)自動(dòng)化學(xué)院