為什么搜索引擎可以搜索到那么多東西?
野玍尐籹
搜索引擎使用被稱為“網(wǎng)絡(luò)爬蟲”的程序來抓取網(wǎng)頁上的所有鏈接。由于互聯(lián)網(wǎng)的特性,大多數(shù)Web頁面都可以通過其他頁面的鏈接得到訪問。自有限的少數(shù)Web頁面出發(fā),網(wǎng)絡(luò)爬蟲可以訪問絕大多數(shù)的Web網(wǎng)頁。通過這種方式搜索引擎就能收錄很多的網(wǎng)頁內(nèi)容。
現(xiàn)在,人們把越來越多的內(nèi)容放在互聯(lián)網(wǎng)上,據(jù)估計(jì),在互聯(lián)網(wǎng)上有數(shù)萬億的獨(dú)立Web頁面。那么,如何在這些海量的內(nèi)容中獲得需要的信息呢?人們發(fā)明了互聯(lián)網(wǎng)搜索引擎來解決這個(gè)問題。我們知道,當(dāng)用戶在百度、谷歌或者必應(yīng)等搜索引擎中輸入關(guān)鍵字時(shí),它們會(huì)找到包含關(guān)鍵字的Web頁面的鏈接,并按一定的順序呈現(xiàn)給用戶。那么,搜索引擎是怎樣幫我們?cè)诰W(wǎng)上搜索信息的呢?
一般說來,搜索引擎的工作大概分為三個(gè)部分。第一個(gè)部分稱為信息抓取。搜索引擎使用被稱為“網(wǎng)絡(luò)爬蟲”的程序來抓取網(wǎng)頁上的所有鏈接。由于互聯(lián)網(wǎng)的特性,大多數(shù)Web頁面都可以通過其他頁面的鏈接得到訪問。從理論上說,自有限的少數(shù)Web頁面出發(fā),網(wǎng)絡(luò)爬蟲可以訪問絕大多數(shù)的Web網(wǎng)頁。想象一下,我們可以把互聯(lián)網(wǎng)看成一個(gè)巨大的蜘蛛網(wǎng),交叉點(diǎn)是Web頁面,交叉點(diǎn)之間的蛛絲是鏈接,爬蟲從一個(gè)交叉點(diǎn)出發(fā),沿著蛛絲就可以到達(dá)任何一個(gè)交叉點(diǎn)。
找到了Web頁面后,搜索引擎會(huì)開始它的第二部分工作:建立索引。簡(jiǎn)單說來,就是搜索引擎從Web頁面中提取關(guān)鍵字,并把頁面信息甚至是整個(gè)頁面的內(nèi)容按照一定的規(guī)則保存在自己的數(shù)據(jù)庫里。這樣做的目的是使得信息能夠盡快被找到,如果搜索引擎只是簡(jiǎn)單地把頁面無規(guī)律地存放的話,每次檢索都要遍歷所有保存的信息,那就失去了搜索引擎的意義了。舉例來說,如果搜索引擎要為一個(gè)介紹動(dòng)畫片《西游記》的頁面建立索引,那么“孫悟空”、“西游記”、“唐僧”、“吳承恩”等詞一般都會(huì)成為該頁面索引的一部分。值得一提的是,由于中文的特殊性(英文以詞為單位,詞和詞之間用空格分隔,中文以字為單位,詞和詞之間沒有明顯的分隔),在提取關(guān)鍵字之前,一般還要對(duì)頁面進(jìn)行分詞處理。
完成了前兩部分工作,搜索引擎就可以向用戶提供搜索服務(wù)了。搜索引擎拿到用戶輸入的關(guān)鍵字,檢索自己的數(shù)據(jù)庫,并把呈現(xiàn)出的搜索結(jié)果頁面展示給用戶。比如說,我們搜索“孫悟空”時(shí),由于在建立索引時(shí),動(dòng)畫片《西游記》的頁面特征已經(jīng)被存放到數(shù)據(jù)庫中了,那么就可以通過“孫悟空”索引,把該頁面的鏈接返回給用戶。此外,返回的結(jié)果也會(huì)包含其他結(jié)果,例如連環(huán)畫《西游記》的頁面、書籍《西游記》的頁面等。