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