正排索引:
文件編號,單詞編號,單詞的數量,單詞出現的位置。
倒排索引:
1,單詞詞典,儲存單詞以及統計資訊,單詞在記錄表中的便宜,可常駐記憶體,用雜湊表儲存。
2,記錄表,單詞對應的文件集合,記錄單詞出現的數目、位置。文件採用差分變長編碼。
其中文件可按編號公升序排列(可利用差分編碼)、也可按出現次數排列,可以最快找到最優匹配文件、也可以分塊儲存,塊內安裝id公升序排列,塊間按照頁面重要性排序。
可以通過兩遍遍歷文件來建立記錄表。第一遍得到單詞的df,idf等資訊,可以得到單詞倒排索引的空間大小。第二遍填充第一遍分配的空間。
兩遍法耗費記憶體,可採用磁碟作為記錄表的中間結果。記憶體不夠用時,中間結果寫入磁碟並和上一次的中間結果可按照歸併排序合併。
會不斷有新文件加入,需要不斷更新索引。可維護3個索引:倒排索引(磁碟)、臨時索引(記憶體)、刪除文件列表(記憶體)。
增加文件,加入臨時索引;刪除文件,加入刪除文件列表。
待到某個時間再合併索引。合併策略:1,完全重建;2,再合併策略,臨時索引和老文件索引再合併;3,原地更新,在老索引後面直接追加。4,混合策略,不同單詞採用不同策略。
分布式索引:1,區域性倒排檔案,按照文件編號劃分;2,全域性倒排檔案,按照單詞編號劃分。
區域性方法可靠性強,降低網路io;全域性方法降低磁碟io。全域性方法適合檢索詞均勻請求,效能很好。
常用倒排索引可以加入快取。
搜尋引擎 倒排索引
本節通過引入簡單例項,介紹與搜尋引擎索引有關的一些基礎概念,了解這些基礎概念對於後續深入了解索引的工作機制非常重要。3.1.1單詞 文件矩陣 單詞 文件矩陣是表達兩者之間所具有的一種包含關係的概念模型,圖3 1展示了其含義。圖3 1的每列代表乙個文件,每行代表乙個單詞,打對勾的位置代表包含關係。圖3...
搜尋引擎 倒排索引
倒排索引基本概念示意圖 假設文件集合包含五個文件,每個文件內容如圖3 3所示,在圖中最左端一欄是每個文件對應的文件編號。我們的任務就是對這個文件集合建立倒排索引。文件集合 需要對每個單詞賦予唯一的單詞編號,同時記錄哪些文當包含這些單詞,如下就是乙個簡單的索引,單詞id記錄了每個單詞的單詞編號,第二欄...
搜尋引擎 倒排索引
一 基本概念 倒排索引源於實際應用中需要根據屬性的值來查詢記錄。這種索引表中的每一項都包括乙個屬性值和具有該屬性值的各記錄的位址。由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引 inverted index 帶有倒排索引的檔案我們稱為倒排索引檔案,簡稱倒排檔案 inver...