先上圖來簡單看下搜索引擎的“三板斧”:數(shù)據(jù)搜集—>預(yù)處理【索引】—>排名。
數(shù)據(jù)搜集
即數(shù)據(jù)的搜集階段,將網(wǎng)頁從浩如瀚海的互聯(lián)網(wǎng)世界搜集到自己的數(shù)據(jù)庫中進行存儲。
1、抓取維護策略
面對大量需要處理的數(shù)據(jù),很多問題需要事先考慮好。比如是“即時抓取”數(shù)據(jù)還是“事先抓取”?在對數(shù)據(jù)進行維護時是“定期抓取”(定期一次深度大抓取,替代原有的數(shù)據(jù))還是“增量抓取”(以原有數(shù)據(jù)為根基,進行新舊交替)?
2、鏈接跟蹤
我們都知道,蜘蛛是順著鏈接爬行和抓取頁面的。如何快速抓取到對用戶來說相對重要的信息以及達到廣闊的覆蓋無疑是搜索引擎需要重點考慮的問題。
先來說第一個,怎么抓取到重要的信息。
想要知道這個,首頁要明白人們是怎么樣主觀去判斷一個頁面是否重要的(自己先思考下)。其實無外乎以下幾種情況:
網(wǎng)頁有歷史權(quán)重積累(域名等時間較長、質(zhì)量高、資格老)、很多人會提到這個頁面(外鏈指向)、很多人會引用這個頁面(轉(zhuǎn)載或者鏡像)、這個頁面便于用戶快速瀏覽(層級較淺)、經(jīng)常有新的內(nèi)容出現(xiàn)(更新)等等。
而在鏈接跟蹤階段,其實能得到的信息只有“這個頁面便于用戶快速瀏覽(層級較淺)”,其它信息還未獲取。
對于信息的覆蓋,其實就是蜘蛛在跟蹤鏈接時的兩個策略:深度抓取與廣度抓取。
用屁股想一下也知道,廣度抓取有助于獲取到更多的信息,深度抓取有助于得到更全面的信息。搜索引擎蜘蛛在抓取數(shù)據(jù)時,通常會兩種方式都采用,但是相比較來說,廣度抓取要多于深度抓取。
3、地址庫
搜索引擎在建立初期,必須是要有一個人工錄入的種子庫的,否則蜘蛛將會在進行連接跟蹤時無從下手。順著這些種子庫,蜘蛛可以發(fā)現(xiàn)更多的鏈接。
當然,多個搜索引擎都會放出一個頁面的提交入口,以便于站長將站點進行提交。
不過值得一提的是,搜索引擎更喜歡自己發(fā)現(xiàn)的鏈接。
4、文件存儲
鏈接跟蹤完畢,需要將跟蹤到的信息進行存儲。存儲的對象,第一是url,第二是頁面內(nèi)容(文件大小、最后一次更新時間、http狀態(tài)碼、頁面源代碼等等)。
關(guān)于url,由于上次看到一個泛端口作弊的站點,這里簡單的提一下。一個url是由傳輸協(xié)議、域名、端口、路徑、文件名等幾部分組成的。
預(yù)處理【索引】
數(shù)據(jù)抓取完畢,就需要進行預(yù)處理了(也有很多人喜歡把這一步叫做索引)。主要會從提取文字、分詞,建立索引,鏈接分析等幾個方面來進行。
1、提取文字
很好理解的一部,將源代碼中的文字提取出來。當然需要注意的是,這里面會包括meta信息以及一些替代文字(例如alt標簽)。
2、分詞
每到這一步,總是想感嘆下漢字的博大精深。!!!
感嘆完畢,繼續(xù)走起。
分詞是中文特有的一個步驟,即根據(jù)句子說要表達的意思將正文進行拆分。通常情況下,分詞會有基于詞典以及統(tǒng)計學(xué)兩種方式。
為了更加有效的進行機器分詞,通常會采用“正向匹配”與“逆向匹配”兩種思路來進行。值得一提的是,“逆向匹配”的方式更容易獲得更多有價值的信息(想想為什么)。
需要強調(diào)的一點是,為了便于分詞之后的詞組可以更好的表達文章的核心意思,會進行去停頓詞(的、啊、嗯之類的詞)以及去噪(導(dǎo)航、版權(quán)、分類等對主體意思表達木有影響分的內(nèi)容)的處理。
3、去重
經(jīng)過去停頓,去噪之后剩下的詞組,已經(jīng)可以很好的表達出頁面的主體意思了。為了便于使得內(nèi)容不被搜索引擎重復(fù)收錄,搜索引擎需要一個算法來進行去重處理。
比如比較知名且常用的為MD5算法,請點擊鏈接到百度百科自行腦補。
4、建立索引
去重完畢,便是一個大家經(jīng)常說起的正向索引與倒排索引。
5、鏈接算法
排名
索引文件建立完畢,離排名就不遠了。
1、搜索詞的處理
搜素引擎會對搜索詞同樣進行分詞處理(想想為什么),說到這里,又不禁想感慨下漢字的博大精深之處。
針對這里,想補充的是一個叫做文本粒度的概念。額,為了避免誤認子弟,還是給出百度官方關(guān)于此處的解釋。
2、文件匹配與子集選擇
按照百度官方的說法,將用戶搜索的詞進行分詞處理之后,便可以對索引庫進行召回了。這里需要考慮到的一點是,用戶查看的往往會是前幾頁的搜索結(jié)果。所以為了資源計,搜索引擎往往會只返回部分的結(jié)果(百度顯示76頁,谷歌100頁),即召回的索引庫中的子集文件。
3、相關(guān)性計算
通常情況下,會有五種因素會影響到相關(guān)系。
關(guān)于此部分,也就是大家經(jīng)常說到的SEO優(yōu)化手段與方法,這里就不再贅述了。
4、排名過濾與調(diào)整
其實經(jīng)過相關(guān)性計算,結(jié)果已經(jīng)大體確定了。只是為了懲罰一些有作弊嫌疑的站點,搜索引擎會在此部分進行結(jié)果的微調(diào)。
比如百度的11位機制。
5、結(jié)果的顯示
深喘一口氣,終于可以看到顯示的結(jié)果了。
返回的結(jié)果會包含title、描述、快照入口、快照日期、url等幾個方面。
這里值得一提的是,不只是描述搜索引擎可以動態(tài)抓取,或許在不久的將來,title也會進行動態(tài)抓取。
轉(zhuǎn)載請保留原文地址: http://m.448gfe.cn/show-540.html