前面簡要介紹過了搜索引擎的索引系統(tǒng),實際上在建立倒排索引的最后還需要有一個入庫寫庫的過程,而為了提高效率這個過程還需要將全部term以及偏移量保存在文件頭部,并且對數(shù)據(jù)進行壓縮,這涉及到的過于技術(shù)化在此就不多提了。今天簡要給大家介紹一下索引之后的檢索系統(tǒng)。 檢索系統(tǒng)主要包含了五個部分,如下圖所示:
(1)Query串切詞分詞即將用戶的查詢詞進行分詞,對之后的查詢做準備,以“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)的性能,這里面包含了使用緩存等等手段進行性能優(yōu)化; (4)各種過濾,舉例可能包含過濾掉死鏈、重復(fù)數(shù)據(jù)、色情、垃圾結(jié)果以及你懂的; (5)最終排序,將最能滿足用戶需求的結(jié)果排序在最前,可能包括的有用信息如:網(wǎng)站的整體評價、網(wǎng)頁質(zhì)量、內(nèi)容質(zhì)量、資源質(zhì)量、匹配程度、分散度、時效性等等,之后會詳細給大家介紹。 |