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