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