《搜索引擎原理系列教程》這個雖然稱不上書籍,但由于里面信息量以及內(nèi)容比較實(shí)用,也彌補(bǔ)了百度白皮書的一些短板——話語浮于表面,另外值得鼓勵的是,這個教程完全是由一個民間的SEO愛好者總結(jié),這份精神值得稱贊。我這里仍然想講三個方面,也是我們SEOER比較關(guān)心的三個方面:收錄、索引、排名。
搜索引擎搜集網(wǎng)頁過程,收錄其實(shí)是個復(fù)雜的過程,他簡單的分為這四個步驟:
1、 調(diào)度器是整個搜集過程的核心,它內(nèi)部保存有一個已訪問URL庫和未訪問URL庫,統(tǒng)稱URL庫。一開始調(diào)度器會從未訪問URL庫中取出一條URL,分配給蜘蛛,讓蜘蛛去抓取未抓取過的URL。
2、 當(dāng)一個蜘蛛得到URL的時候,它會向返個URL發(fā)出請求抓取,流程是:對該URL對應(yīng)的域名進(jìn)行DNS解析->得到IP進(jìn)行Socket連接->連接成功發(fā)出http請求->接收網(wǎng)頁信息。
3、 蜘蛛得到網(wǎng)頁信息后,會返回源代碼給調(diào)度器,調(diào)度器會將源代碼保存到網(wǎng)頁數(shù)據(jù)庫中。
4、 調(diào)度器會對抓取到網(wǎng)頁迕行鏈接提取,將未抓取過的URL存放到未訪問URL庫中,并將剛剛抓取完的URL更新到已抓取URL庫中。
這其中會涉及到去重
調(diào)度器的工作流程
1、從未訪問URL表中依次取出URL,分配給各個蜘蛛。
2、蜘蛛得到URL,進(jìn)行抓取,得到網(wǎng)頁的源代碼,對該源代碼進(jìn)行URL的提取,獲得該網(wǎng)頁包含的所有URL。
3、調(diào)度器依次查看得到的URL是否在已訪問URL庫中存在。如果存在,則說明已經(jīng)被抓取過,那么將該URL丟棄;如果不存在,說明這個URL沒有被抓取過,則順序添加到未訪問URL表中,等待之后抓取。
4、重復(fù)步驟1,直到未訪問表為空。
網(wǎng)頁預(yù)處理
1、給原始網(wǎng)頁建立索引。
2、針對搜索有網(wǎng)頁庫進(jìn)行網(wǎng)頁切分,將每一個頁面轉(zhuǎn)化為一組詞的集合。(正向索引)
3、將網(wǎng)頁到索引詞的映射轉(zhuǎn)換為索引詞到網(wǎng)頁的映射,形成倒排文件(包括倒排表和索引詞表)
總的來說,搜索引擎從網(wǎng)頁數(shù)據(jù)庫獲取網(wǎng)頁然后進(jìn)行代碼過濾,然后提取正文信息后進(jìn)行切詞,之后的步驟就是對關(guān)鍵詞集合進(jìn)行篩選,得到網(wǎng)頁關(guān)鍵詞正向索引,最后才將搜索引擎將正向索引轉(zhuǎn)換未關(guān)鍵詞到網(wǎng)頁的倒排索引,正是這個技術(shù),搜索引擎才有可能在1S內(nèi)給用戶呈現(xiàn)搜索結(jié)果。
另外,這其中搜索引擎做的動作就是網(wǎng)頁凈化和消重,除了去除網(wǎng)頁內(nèi)噪音內(nèi)容(如廣告、版權(quán)等),提取網(wǎng)頁主題和相關(guān)內(nèi)容外,去除網(wǎng)頁集合中內(nèi)容重復(fù)內(nèi)容。
有同學(xué)可能會問,搜索引擎如何識別主體內(nèi)容的呢?事實(shí)上,算法是靠建立HTML標(biāo)簽樹和投票方法識別正文文本。
比如,我們定一下規(guī)則,
1、如果文本塊文本長度少于10個字,0分。介于10~50個字得5分。介于50~250個字,得8分。超過250個字,得10分。
2、文本塊文本位置在右側(cè),得0分。在頂部,得3分。在左側(cè),得5分。在中部,得10分。
那我們就得出,頁面TITLE得分9,正文加粗H1標(biāo)簽得分8等等,DIV部分的AD部分得分0,丟棄。
(以上舉例只為了參考,跟實(shí)際算法沒有關(guān)聯(lián))
搜索引擎進(jìn)行網(wǎng)頁消重都要經(jīng)過3個步驟,首先是特征抽取(這其中涉及到I-Match算法、Shingle算法),然后相似度計算、評價是否相似,最后才是消重。
事實(shí)上,搜索引擎算法和用戶交互的過程就是一個查詢的流程,比如用戶搜索“搜索引擎原理”,算法分詞后得到“搜索引擎”,“原理”,在倒排索引表中找到包含這兩個文檔列表,求交,然后將用戶查詢以及上一步找到文檔列表中被一條記錄進(jìn)行向量化后,求查詢向量和文檔向量的相似度,然后從高到底排序,最后就是我們看到的最終搜索結(jié)果。
最后就舉個例子作為結(jié)尾:
搜索引擎網(wǎng)頁權(quán)重=網(wǎng)頁中詞項(xiàng)基本權(quán)重+鏈接權(quán)重+用戶評價權(quán)重
網(wǎng)頁中詞項(xiàng)基本權(quán)重
1、例如某個關(guān)鍵詞”搜索引擎”在<h1><b>搜索引擎</b></h1>的環(huán)境下,權(quán)重應(yīng)該為:WBT=W+W, (h1)+W,(b)=10+12+4=26
2、關(guān)鍵詞“搜索引擎”可能還在文檔中其他地方出現(xiàn)n次,每次出現(xiàn)都可以計算一個WBT1、WBT2、WBT3…WBTn,那么可以計算出整個文檔“搜索引擎”這個關(guān)鍵詞的權(quán)重為︰
wBT(關(guān)鍵詞,網(wǎng)頁)=WBT,+ WBT,+…+WBTT=>wBT
相關(guān)排序–鏈接權(quán)值的計算
相關(guān)排序–用戶評價權(quán)值的計算
….
最終權(quán)值的計算
搜索引擎可以通過配置KWB、KWL、KWU來設(shè)置側(cè)重哪些因素影響權(quán)重,比如如果搜索引擎設(shè)置了KWL為0.8,KWB、KWU均為0.1,那么說明該搜索引擎更側(cè)重鏈接對權(quán)重的影響,通過這樣的算法,可以很輕松的算法上的調(diào)整。