正排索引(正向索引)
正排表是以文件的id為關鍵字,表中記錄文件中每個字的位置資訊,查詢時掃瞄表中每個文件中字的資訊直到找出所有包含查詢關鍵字的文件。
正排表結構如圖1所示,這種組織方法在建立索引的時候結構比較簡單,建立比較方便且易於維護;因為索引是基於文件建立的,若是有新的文件加入,直接為該文件建立乙個新的索引塊,掛接在原來索引檔案的後面。若是有文件刪除,則直接找到該文件號文件對應的索引資訊,將其直接刪除。但是在查詢的時候需對所有的文件進行掃瞄以確保沒有遺漏,這樣就使得檢索時間大大延長,檢索效率低下。
儘管正排表的工作原理非常的簡單,但是由於其檢索效率太低,除非在特定情況下,否則實用性價值不大。
倒排索引(反向索引)
倒排表以字或詞為關鍵字進行索引,表中關鍵字所對應的記錄表項記錄了出現這個字或詞的所有文件,乙個表項就是乙個字表段,它記錄該文件的id和字元在該文件中出現的位置情況。
由於每個字或詞對應的文件數量在動態變化,所以倒排表的建立和維護都較為複雜,但是在查詢的時候由於可以一次得到查詢關鍵字所對應的所有文件,所以效率高於正排表。在全文檢索中,檢索的快速響應是乙個最為關鍵的效能,而索引建立由於在後台進行,儘管效率相對低一些,但不會影響整個搜尋引擎的效率。
倒排表的結構圖如圖:
其中詞典結構尤為重要,有很多種詞典結構,各有各的優缺點,最簡單如排序陣列,通過二分查詢來檢索資料,更快的有雜湊表,磁碟查詢有b樹、b+樹,但乙個能支援tb級資料的倒排索引結構需要在時間和空間上有個平衡,下圖列了一些常見詞典的優缺點:
其中可用的有:b+樹、跳躍表、fst
正排索引是從文件到關鍵字的對映(已知文件求關鍵字),倒排索引是從關鍵字到文件的對映(已知關鍵字求文件)。
倒排索引
搜尋引擎 倒排索引
本節通過引入簡單例項,介紹與搜尋引擎索引有關的一些基礎概念,了解這些基礎概念對於後續深入了解索引的工作機制非常重要。3.1.1單詞 文件矩陣 單詞 文件矩陣是表達兩者之間所具有的一種包含關係的概念模型,圖3 1展示了其含義。圖3 1的每列代表乙個文件,每行代表乙個單詞,打對勾的位置代表包含關係。圖3...
搜尋引擎 倒排索引
倒排索引基本概念示意圖 假設文件集合包含五個文件,每個文件內容如圖3 3所示,在圖中最左端一欄是每個文件對應的文件編號。我們的任務就是對這個文件集合建立倒排索引。文件集合 需要對每個單詞賦予唯一的單詞編號,同時記錄哪些文當包含這些單詞,如下就是乙個簡單的索引,單詞id記錄了每個單詞的單詞編號,第二欄...
搜尋引擎 倒排索引
一 基本概念 倒排索引源於實際應用中需要根據屬性的值來查詢記錄。這種索引表中的每一項都包括乙個屬性值和具有該屬性值的各記錄的位址。由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引 inverted index 帶有倒排索引的檔案我們稱為倒排索引檔案,簡稱倒排檔案 inver...