眾所周知,搜索引擎的主要工作過程包括:抓取、存儲、頁面分析、索引、檢索等幾個主要過程。上一章我們主要介紹了部分抓取存儲環(huán)節(jié)中的內(nèi)容,此章簡要介紹一下索引系統(tǒng)。
在以億為單位的網(wǎng)頁庫中查找特定的某些關(guān)鍵詞猶如大海里面撈針,也許一定的時間內(nèi)可以完成查找,但是用戶等不起,從用戶體驗角度我們必須在毫秒級別給予用戶滿意的結(jié)果,否則用戶只能流失。怎樣才能達(dá)到這種要求呢?
如果能知道用戶查找的關(guān)鍵詞(query切詞后)都出現(xiàn)在哪些頁面中,那么用戶檢索的處理過程即可以想象為包含了query中切詞后不同部分的頁面集合求交的過程,而檢索即變成了頁面名稱之間的比較、求交。這樣,在毫秒內(nèi)以億為單位的檢索成為了可能。這就是通常所說的倒排索引及求交檢索的過程。如下為建立倒排索引的基本過程:
1,頁面分析的過程實際上是將原始頁面的不同部分進(jìn)行識別并標(biāo)記,例如:title、keywords、content、link、anchor、評論、其他非重要區(qū)域等等;
2,分詞的過程實際上包括了切詞分詞同義詞轉(zhuǎn)換同義詞替換等等,以對某頁面title分詞為例,得到的將是這樣的數(shù)據(jù):term文本、termid、詞類、詞性等等;
3,之前的準(zhǔn)備工作完成后,接下來即是建立倒排索引,形成{termàdoc},下圖即是索引系統(tǒng)中的倒排索引過程。

倒排索引是搜索引擎實現(xiàn)毫秒級檢索非常重要的一個環(huán)節(jié),下面我們要重要介紹一下索引系統(tǒng)建立倒排索引的重要過程——入庫寫庫。
倒排索引的重要過程——入庫寫庫
索引系統(tǒng)在建立倒排索引的最后還需要有一個入庫寫庫的過程,而為了提高效率這個過程還需要將全部term以及偏移量保存在文件頭部,并且對數(shù)據(jù)進(jìn)行壓縮,這涉及到的過于技術(shù)化在此就不多提了。在此簡要給大家介紹一下索引之后的檢索系統(tǒng)。
檢索系統(tǒng)主要包含了五個部分,如下圖所示:

(1)Query串切詞分詞即將用戶的查詢詞進(jìn)行分詞,對之后的查詢做準(zhǔn)備,以“10號線地鐵故障”為例,可能的分詞如下(同義詞問題暫時略過):
10 0x123abc
號 0x13445d
線 0x234d
地鐵 0x145cf
故障 0x354df
(2)查出含每個term的文檔集合,即找出待選集合,如下:
0x123abc 1 2 3 4 7 9…..
0x13445d 2 5 8 9 10 11……
……
……
(3)求交,上述求交,文檔2和文檔9可能是我們需要找的,整個求交過程實際上關(guān)系著整個系統(tǒng)的性能,這里面包含了使用緩存等等手段進(jìn)行性能優(yōu)化;
(4)各種過濾,舉例可能包含過濾掉死鏈、重復(fù)數(shù)據(jù)、色情、垃圾結(jié)果以及你懂的;
(5)最終排序,將最能滿足用戶需求的結(jié)果排序在最前,可能包括的有用信息如:網(wǎng)站的整體評價、網(wǎng)頁質(zhì)量、內(nèi)容質(zhì)量、資源質(zhì)量、匹配程度、分散度、時效性等等
影響搜索結(jié)果排序的因素
上面的內(nèi)容好象有些深奧,因為涉及大量技術(shù)細(xì)節(jié),我們只能說到這兒了。那下面我們說說大家最感興趣的排序問題吧。用戶輸入關(guān)鍵詞進(jìn)行檢索,百度搜索引擎在排序環(huán)節(jié)要做兩方面的事情,第一是把相關(guān)的網(wǎng)頁從索引庫中提取出來,第二是把提取出來的網(wǎng)頁按照不同維度的得分進(jìn)行綜合排序。“不同維度”包括:
1,相關(guān)性:網(wǎng)頁內(nèi)容與用戶檢索需求的匹配程度,比如網(wǎng)頁包含的用戶檢查關(guān)鍵詞的個數(shù),以及這些關(guān)鍵詞出現(xiàn)的位置;外部網(wǎng)頁指向該頁面所用的錨文本等
2,權(quán)威性:用戶喜歡有一定權(quán)威性網(wǎng)站提供的內(nèi)容,相應(yīng)的,百度搜索引擎也更相信優(yōu)質(zhì)權(quán)威站點提供的內(nèi)容。
3,時效性:時效性結(jié)果指的是新出現(xiàn)的網(wǎng)頁,且網(wǎng)頁內(nèi)承載了新鮮的內(nèi)容。目前時效性結(jié)果在搜索引擎中日趨重要。
4,重要性:網(wǎng)頁內(nèi)容與用戶檢查需求匹配的重要程度或受歡迎程度
5,豐富度:豐富度看似簡單卻是一個覆蓋范圍非常廣的命題。可以理解為網(wǎng)頁內(nèi)容豐富,可以完全滿足用戶需求;不僅可以滿足用戶單一需求,還可以滿足用戶的延展需求。
6,受歡迎程度:指該網(wǎng)頁是不是受歡迎。
以上便是百度搜索引擎決定搜索結(jié)果排序時考慮的六大原則,那么六大原則的側(cè)重點是怎樣的呢?哪個原則在實際應(yīng)用時占比最大呢?其實在這里沒有一個確切的答案。在百度搜索引擎早期,這些閾值的確是相對固定的,比如“相關(guān)性”在整體排序中的重量可以占到七成。但隨著互聯(lián)網(wǎng)的不斷發(fā)展,檢索技術(shù)的進(jìn)步,網(wǎng)頁數(shù)量的爆發(fā)式增長,相關(guān)性已經(jīng)不是難題。于是百度搜索引擎引入了機器學(xué)習(xí)機制,讓程序自動產(chǎn)出計算公式,推進(jìn)排序策略更加合理。
低質(zhì)網(wǎng)頁狙擊策略——石榴算法
我們理解網(wǎng)站生存發(fā)展需要資金支持,從來不反對網(wǎng)站添加各種合法廣告,不要再問我們“我們網(wǎng)站加了XX聯(lián)盟的廣告會不會被處罰”這類問題。有些站點好不容易在百度有了比較好的排位,卻在頁面上放置大量有損訪問用戶體驗的廣告,已經(jīng)嚴(yán)重影響到百度搜索引擎用戶的使用感受。為此,百度質(zhì)量團隊2013年5月17日發(fā)布公告:針對低質(zhì)量網(wǎng)頁推出了石榴算法,旨在打擊含有大量妨礙用戶正常瀏覽的惡劣廣告的頁面,尤其是彈出大量低質(zhì)廣告、存在混淆頁面主體內(nèi)容的垃圾廣告的頁面。
如以下網(wǎng)頁截圖,用戶要花很長時間去尋找真正的下載地址,是百度無法接受容忍的。
百度質(zhì)量團隊希望站長能夠多從用戶角度出發(fā),朝著長遠(yuǎn)發(fā)展考慮,在不影響用戶體驗的前提下合理地放置廣告,贏得用戶的長期青睞才是一個網(wǎng)站發(fā)展壯大的基礎(chǔ)。