基本上,每一個搜索引擎的功能都差不多,工作原理也類似,怎么說呢?其實都是谷歌的山寨版,因此,一切都只要以一個搜索引擎來作為核心目標(biāo),其他的就好辦了。從根本上來說,搜索引擎的排名,從原理上可以分成以下幾個部分。
第一步:發(fā)現(xiàn)、搜集網(wǎng)頁信息
搜索引擎會排出一個能夠在網(wǎng)上發(fā)現(xiàn)新網(wǎng)頁并抓取文件的程序,我們通常把這個程序叫做“網(wǎng)絡(luò)蜘蛛”程序(Spider)或者機(jī)器人(robot)。一個典型的網(wǎng)絡(luò)蜘蛛工作的方式,是查看一個頁面,這個頁面是蜘蛛已知的頁面,并從中找到相關(guān)信息,這頗為象正常用戶的瀏覽器工作原理,在瀏覽和抓取完這個頁面的信息之后,它就開始繼續(xù)爬行,從該頁面的所有鏈接中出發(fā),繼續(xù)尋找相關(guān)的信息,以此類推,直至窮盡。這其實很類似我們常用的瀏覽器,看完一個頁面,存下來,放進(jìn)數(shù)據(jù)庫,然后繼續(xù)看……
網(wǎng)絡(luò)蜘蛛要求能夠快速、全面。網(wǎng)絡(luò)蜘蛛為實現(xiàn)其快速地瀏覽整個互聯(lián)網(wǎng),通常在技術(shù)上采用搶先式多線程技術(shù)實現(xiàn)在網(wǎng)上聚集信息。通過搶先式多線程的使用,你能索引一個基于URL鏈接的Web頁面,啟動一個新的線程跟隨每個新的URL鏈接,索引一個新的URL起點。
當(dāng)然在服務(wù)器上所開的線程也不能無限膨脹,需要在服務(wù)器的正常運(yùn)轉(zhuǎn)和快速收集網(wǎng)頁之間找一個平衡點。在算法上各個搜索引擎技術(shù)公司可能不盡相同,但目的都是快速瀏覽Web頁和后續(xù)過程相配合。目前國內(nèi)的搜索引擎技術(shù)公司中,比如百度公司的網(wǎng)絡(luò)蜘蛛采用了可定制、高擴(kuò)展性的調(diào)度算法使得搜索器能在極短的時間內(nèi)收集到最大數(shù)量的互聯(lián)網(wǎng)信息,并把所獲得的信息保存下來以備建立索引庫和用戶檢索。
第二步:建立索引庫
搜索引擎抓到網(wǎng)頁后,還要做大量的預(yù)處理工作,才能提供檢索服務(wù)。其中,最重要的就是提取關(guān)鍵詞,建立索引文件。其他還包括去除重復(fù)網(wǎng)頁、分析超鏈接、計算網(wǎng)頁的重要度。
這個工作流程就看搜索引擎是否強(qiáng)悍了。網(wǎng)絡(luò)蜘蛛既然抓取完頁面,那么這些頁面總有個歸屬,搜索引擎的索引程序此刻就開始運(yùn)動了。因為這關(guān)系到用戶能否最迅速地找到最準(zhǔn)確、最廣泛的信息。通過索引程序,將蜘蛛抓取回來的頁面進(jìn)行分解和分析,建立出一個巨大表格模式,放入數(shù)據(jù)庫中,從而極快地建立索引。大多數(shù)搜索引擎對網(wǎng)站數(shù)據(jù)建立索引的過程中采取了按照關(guān)鍵詞在網(wǎng)站標(biāo)題、網(wǎng)站描述、網(wǎng)站URL等不同位置的出現(xiàn)或網(wǎng)站的質(zhì)量等級等建立索引庫,從而保證搜索出的結(jié)果與用戶的查詢串相一致。
第三步:搜索詞處理
這是對前兩個過程的檢驗,檢驗該搜索引擎能否給出最準(zhǔn)確、最廣泛的信息,檢驗該搜索引擎能否迅速地給出用戶最想得到的信息。對于網(wǎng)站數(shù)據(jù)的檢索,搜索引擎采用Client/Server結(jié)構(gòu)、多進(jìn)程的方式在索引庫中檢索,大大減少了用戶的等待時間,并且在用戶查詢高峰時服務(wù)器的負(fù)擔(dān)不會過高(平均的檢索時間在0.3秒左右)。對于網(wǎng)頁信息的檢索,百度公司其搜索引擎運(yùn)用了先進(jìn)的多線程技術(shù),采用高效的搜索算法和穩(wěn)定的UNIX平臺,因此可大大縮短對用戶搜索請求的響應(yīng)時間。
那么這就造成了一個結(jié)果,即用戶在搜索引擎界面上輸入關(guān)鍵詞,單擊“搜索”按鈕之后,搜索引擎從索引數(shù)據(jù)庫中找到匹配該關(guān)鍵詞的網(wǎng)頁,立刻會出現(xiàn)回應(yīng),為了用戶便于判斷,除了網(wǎng)頁標(biāo)題和URL外,還會提供一段來自網(wǎng)頁的摘要以及其他信息。
第四步:排名
這個其實是所有想要進(jìn)行搜索引擎優(yōu)化的人最關(guān)心的,也就是為什么別人的搜索結(jié)果會排在前面。在提交搜索之后,搜索引擎排序程序啟動,從搜索數(shù)據(jù)庫中找到所有包含搜索詞的網(wǎng)頁,并且按照排名算法來計算出哪些網(wǎng)頁應(yīng)該排在前面。
排名算法是一個非常復(fù)雜的過程,盡管表面上看起來只有零點幾秒,但卻需要實時從索引數(shù)據(jù)庫中找到相關(guān)頁面,實時計算相關(guān)性,并加入過濾算法,其復(fù)雜程度根本不是行外人所能窺探的。當(dāng)然,我們也不需要過多的去窺探它,只要摸索出它的排名特征就可以了,只要摸索出這一點,我們就可以有效的進(jìn)行搜索引擎優(yōu)化。