分佈式搜索引擎-倒排索引是什麼

分佈式搜索引擎的面試連環炮

面試題

倒排索引是什麼?

 

倒排索引適用於快速的全文檢索,一個倒排索引由文檔中所有不重複詞的列表構成,對於其中每個詞,有一個包含它的文檔列表

例如:

假設文檔集合中包含五個文檔,每個文檔的內容如下所示,在圖中最左端一欄是每個文檔對應的編號,我們的任務就是對這個文檔集合建立倒排索引

image-20200420174829608

中文和英文等語言不通,單詞之間沒有明確分割符號,所以首先要用分詞系統將文檔自動切分成單詞序列,這樣每個文檔就轉換爲由單詞序列構成的數據流,爲了系統後續處理方便,需要對每個不同的單詞賦予唯一的單詞編號,同時記錄下哪些文檔包含這個單詞,在如此處理結束後,我們就可以得到最簡單的倒排索引了

image-20200420175115061

索引系統還可以記錄除此之外的更多信息,下圖是記錄了單詞出現的頻率(TF)即這個單詞在文檔中出現的次數,之所以要記錄這個信息,是因爲詞頻信息在搜索結果排序時,計算查詢和文檔相似度是很重要的一個計算因子,所以將其記錄在倒排列表中,以便後續排序時進行分值計算。

image-20200420175534595

倒排列表還可以記錄單詞在某個文檔出現的位置信息

(1, <11>, 1), (2, <7>, 1), (3, <3, 9>, 2)

有了這個索引系統,搜索引擎可以很方便地響應用戶的查詢,比如用戶輸入查詢詞 "Facebook",搜索系統查找倒排索引,從中可以讀出包含這個單詞的文檔,這些文檔就是提供給用戶的搜索結果,而利用單詞頻率信息,文檔頻率信息即可以對這些候選搜索結果進行排序,計算文檔和查詢的相似性,按照相似性得分由高到低排序輸出,此即爲搜索系統的部分內部流程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章