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