1. 程式人生 > >搜尋引擎系列1:什麼是正向索引?什麼是倒排索引?

搜尋引擎系列1:什麼是正向索引?什麼是倒排索引?

什麼是正向索引、什麼是倒排索引?

正向索引(forward index),反向索引(inverted index)更熟悉的名字是倒排索引。

在搜尋引擎中每個檔案都對應一個檔案ID,檔案內容被表示為一系列關鍵詞的集合(實際上在搜尋引擎索引庫中,關鍵詞也已經轉換為關鍵詞ID)。例如文件1”經過分詞,提取了20個關鍵詞,每個關鍵詞都會記錄它在文件中的出現次數和出現位置,得到正向索引的結構如下:

       “文件1”ID > 單詞1:出現次數,出現位置列表;單詞2:出現次數,出現位置列表;…………

       “文件2”ID > 此文件出現的關鍵詞列表。

當用戶在主頁上搜索關鍵詞

華為手機時,假設只存在正向索引(forward index),那麼就需要掃描索引庫中的所有文件,找出所有包含關鍵詞華為手機的文件,再根據打分模型進行打分,排出名次後呈現給使用者。因為網際網路上收錄在搜尋引擎中的文件的數目是個天文數字,這樣的索引結構根本無法滿足實時返回排名結果的要求。

所以,搜尋引擎會將正向索引重新構建為倒排索引,即把檔案ID對應到關鍵詞的對映轉換為關鍵詞到檔案ID的對映,每個關鍵詞都對應著一系列的檔案,這些檔案中都出現這個關鍵詞,得到倒排索引的結構如下:

       “關鍵詞1”文件1”ID文件2”ID…………

       “關鍵詞2”:帶有此關鍵詞的文件

ID列表。

注:入門級理解,持續更新ing(時:2015.7.10)