當前位置:成語大全網 - 漢語詞典 - 倒排索引的相關概念和定義

倒排索引的相關概念和定義

倒排表用於記錄哪些文檔包含壹個單詞。壹般在文檔集合中會有很多包含壹個單詞的文檔,每個文檔都會記錄文檔號(DocID)、這個單詞在這個文檔中出現的次數(TF)以及這個單詞在文檔中出現過的位置,所以與壹個文檔相關的信息稱為倒排索引條目(Posting),壹系列包含這個單詞的倒排索引條目組成壹個列表結構,就是壹個單詞對應的倒排列表。右圖是倒排表的示意圖。文檔集合中出現過的所有單詞及其對應的倒排表構成了倒排索引。

在實際的搜索引擎系統中,倒排索引項中的實際文檔號並沒有被存儲,而是被文檔號差(D-Gap)所代替。文檔號差是倒排表中兩個相鄰倒排索引項的文檔號之差。壹般在索引構建過程中,可以保證倒排表中後面出現的文檔號大於前面出現的文檔號,所以文檔號差總是大於0的整數。在圖2所示的例子中,原來的三個單據號分別是187、196和199,通過號差的計算,在實際存儲時轉換為:187、9和3。

計算文檔號差異的主要原因是為了更好地壓縮數據。原始文檔編號通常是較大的值。通過差值計算,可以有效地將大值轉換成小值,有助於提高數據的壓縮率。索引的構建相當於從正向表到反向表的建立過程。當我們分析完網頁後,得到了壹個以網頁為主要代碼的索引表。索引建立後,應該會得到倒排表,具體流程如下所示:

該過程描述如下:

1)將文檔分析稱為word $ term標記,

2)使用散列來復制單詞$ term 3)生成單詞的倒排列表。倒排表是文檔號DocID,不包含其他信息(如詞頻、詞位等。).這是壹個簡單的索引。這個簡單的索引功能可以用於小數據,例如索引數千個文檔。但是它有兩個限制:1)它需要足夠的內存來存儲倒排表。對於搜索引擎來說,都是G級的數據,尤其是在規模不斷擴大的情況下,我們不可能提供這麽大的內存。2)算法順序執行,不便於並行處理。合並法,即每次內存中的數據寫入磁盤時,將包括字典在內的中間結果信息全部寫入磁盤,這樣就可以清空內存的所有內容,將所有的配額內存用於後續的索引。

如圖所示:

合並過程:

1)頁面分析,生成臨時倒排數據索引A和B,當臨時倒排數據索引A和B內存滿時,將內存索引A和B寫入臨時文件,生成臨時倒排文件。2)將生成的臨時倒排文件進行多種方式的合並,輸出最終的倒排文件。

索引創建過程中的頁面分析,尤其是中文分詞,是主要的時間支出。算法的第二步相對較快。該算法的優化集中在中文分詞的效率上。