網(wǎng)頁(yè)是基于互聯(lián)網(wǎng)的一個(gè)最基本的單位,搜索引擎圍繞一個(gè)網(wǎng)頁(yè)展開(kāi)的工作大致需要經(jīng)歷如下四個(gè)環(huán)節(jié)(包括但不限):
(1)下載系統(tǒng):搜索引擎下載頁(yè)面
(2)分析系統(tǒng):搜索引擎對(duì)頁(yè)面進(jìn)行分析
(3)索引系統(tǒng):搜索引擎根據(jù)分析結(jié)果決定是否予以收錄、索引
(4)查詢(xún)系統(tǒng):搜索引擎將頁(yè)面加入緩存,進(jìn)行查詢(xún)
為何搜索引擎要按照這種方式展開(kāi)工作?搜索引擎的使命是什么?
(1)搜索引擎為何要將頁(yè)面下載回去?
難以想象,搜索引擎不把頁(yè)面下載回去,加入搜索引擎的頁(yè)面庫(kù),搜索引擎將如何對(duì)頁(yè)面進(jìn)行分析。難道讓搜索引擎根據(jù)需求才對(duì)頁(yè)面進(jìn)行實(shí)時(shí)下載、分析,然后直接進(jìn)行展現(xiàn)?哦不……那樣效率會(huì)非常之低,在用戶(hù)搜索一個(gè)關(guān)鍵詞進(jìn)行檢索時(shí),搜索引擎需要花費(fèi)大量的時(shí)間才能分析完畢,給用戶(hù)返回結(jié)果,不怕用戶(hù)等得不耐煩跑掉?
實(shí)際上,搜索引擎需要在非常短暫的時(shí)間內(nèi),對(duì)用戶(hù)的搜索請(qǐng)求返回結(jié)果,因此就需要事先在搜索引擎中建立一個(gè)數(shù)據(jù)庫(kù),然后把常用的信息放入高速緩存之中,這樣就可以保證在極短的時(shí)間內(nèi),對(duì)用戶(hù)的請(qǐng)求進(jìn)行響應(yīng)了。
關(guān)于緩存,大家可以自行百度一下,我舉個(gè)不是太好的例子,就像電腦的機(jī)械硬盤(pán)和固態(tài)硬盤(pán)相對(duì)于內(nèi)存的速度(有明顯質(zhì)的或者幾何級(jí)別的區(qū)別)
不僅如此,搜索引擎所擔(dān)負(fù)的使命主要還有兩點(diǎn),一是抓取更多頁(yè)面,而是根據(jù)分析系統(tǒng)和查詢(xún)系統(tǒng)的情況,根據(jù)重要程度去跟蹤觀察一些頁(yè)面。
搜索引擎需要盡可能地遍歷并下載互聯(lián)網(wǎng)上存在的所有頁(yè)面,只有這樣才能為用戶(hù)提供更多的參考信息。我來(lái)舉個(gè)例子:許多人都在談?wù),谷歌在學(xué)術(shù)界的搜索體驗(yàn)要明顯高于其他搜索引擎,其實(shí)也可以說(shuō)是谷歌在世界范圍中抓取的學(xué)術(shù)界的頁(yè)面的數(shù)量和質(zhì)量都要比其他搜索引擎要多要好。
對(duì)于越重要的頁(yè)面,更新越頻繁的頁(yè)面,展現(xiàn)多的頁(yè)面,需要分配更多資源對(duì)其進(jìn)行跟蹤,以確保目標(biāo)頁(yè)面處于一種正常狀態(tài)(當(dāng)目標(biāo)頁(yè)面處于非正常狀態(tài)時(shí),可以及時(shí)反應(yīng)過(guò)來(lái),進(jìn)行相應(yīng)處理)。
(2)為什么頁(yè)面被下載回去還要進(jìn)行分析?
因?yàn)榛ヂ?lián)網(wǎng)上的頁(yè)面,絕大部分都并不會(huì)是優(yōu)質(zhì)的頁(yè)面(一方面是沒(méi)有搜索價(jià)值或者用戶(hù)搜索需求的頁(yè)面,比如我的流水賬一樣的日記,比如一些隱私信息等;另一方面是針對(duì)搜索引擎制造的粗制濫造、抄襲的垃圾頁(yè)面,就是我們熟知的黑帽作弊頁(yè)面;還有一些是已經(jīng)不存在的頁(yè)面,比如一些頁(yè)面曾經(jīng)可訪,現(xiàn)在由于一些原因不可訪問(wèn),比如一些國(guó)外倒閉公司的網(wǎng)站,或者因?yàn)椴煌騽h除的頁(yè)面……
搜索引擎為了對(duì)魚(yú)龍混雜的互聯(lián)網(wǎng)上存在的大量頁(yè)面進(jìn)行甄選,所以必然需要對(duì)這些頁(yè)面進(jìn)行選拔,對(duì)優(yōu)質(zhì)頁(yè)面進(jìn)行優(yōu)先展現(xiàn),將劣質(zhì)頁(yè)面過(guò)濾掉不予展現(xiàn)。
(3)為何需要索引機(jī)制?
用戶(hù)從搜索引擎中進(jìn)行搜索時(shí),一般只會(huì)對(duì)很少的一部分頁(yè)面進(jìn)行訪問(wèn)即可解決需求,因此并不需要對(duì)大量的網(wǎng)頁(yè)進(jìn)行展現(xiàn)。因此,為了加快查詢(xún)響應(yīng)速度,只對(duì)根據(jù)分析系統(tǒng)得到的一批優(yōu)質(zhì)頁(yè)面進(jìn)行展現(xiàn),是一個(gè)不錯(cuò)的主意。
而且,這個(gè)階段有一個(gè)特性,會(huì)把頁(yè)面和關(guān)鍵詞進(jìn)行聯(lián)系。這為搜索引擎在遇到用戶(hù)的不同搜索詞對(duì)不同頁(yè)面進(jìn)行展現(xiàn)提供了解決方案。
就如同一個(gè)頁(yè)面不會(huì)霸占所有的關(guān)鍵詞,一個(gè)關(guān)鍵詞的結(jié)果展現(xiàn)中對(duì)于不同的頁(yè)面也有不同的排序。
(4)查詢(xún)系統(tǒng)是什么好吃嗎?
查詢(xún)系統(tǒng)是搜索引擎與用戶(hù)最接近的一個(gè)環(huán)節(jié),用戶(hù)想從搜索引擎得到的信息都是直接通過(guò)查詢(xún)系統(tǒng)進(jìn)行展現(xiàn)的。
普通的用戶(hù)不會(huì)在意他得到的信息來(lái)自于哪里,而是對(duì)他是否有幫助。所以搜索引擎必須致力于解決這個(gè)環(huán)節(jié)上可能出現(xiàn)的問(wèn)題與矛盾。搜索引擎會(huì)根據(jù)這個(gè)環(huán)節(jié)中用戶(hù)的各種行為,來(lái)對(duì)搜索結(jié)果排序進(jìn)行調(diào)整、干預(yù)。我舉個(gè)例子,比如大部分用戶(hù)通過(guò)某個(gè)關(guān)鍵詞進(jìn)入排序在前面的某個(gè)頁(yè)面,但是在該站點(diǎn)的另外一個(gè)頁(yè)面上進(jìn)行了跳出或者轉(zhuǎn)化,那么搜索引擎可能就會(huì)認(rèn)為,最終的頁(yè)面才更適合展現(xiàn)給用戶(hù),如果用戶(hù)瀏覽的具有價(jià)值的頁(yè)面沒(méi)有被抓取、收錄、索引的話(huà),搜索引擎可能會(huì)對(duì)目標(biāo)頁(yè)面進(jìn)行這樣的工作,對(duì)最終的展現(xiàn)進(jìn)行跳轉(zhuǎn)。另一個(gè)例子,如果有大量用戶(hù)對(duì)排在前面的頁(yè)面的跳出率過(guò)高,搜索引擎可能會(huì)認(rèn)為這個(gè)頁(yè)面展示的效果不好,從而把本來(lái)排在前面的頁(yè)面移到后面去。