正排表是以文件的id為關鍵字,表中記錄文件中每個字的位置資訊,查詢時掃瞄表中每個文件中字的資訊直到找出所有包含查詢關鍵字的文件。
正排表結構如圖1所示,這種組織方法在建立索引的時候結構比較簡單,建立比較方便且易於維護;因為索引是基於文件建立的,若是有新的文件加入,直接為該文件建立乙個新的索引塊,掛接在原來索引檔案的後面。若是有文件刪除,則直接找到該文件號文件對應的索引資訊,將其直接刪除。但是在查詢的時候需對所有的文件進行掃瞄以確保沒有遺漏,這樣就使得檢索時間大大延長,檢索效率低下。
儘管正排表的工作原理非常的簡單,但是由於其檢索效率太低,除非在特定情況下,否則實用性價值不大。
倒排表以字或詞為關鍵字進行索引,表中關鍵字所對應的記錄表項記錄了出現這個字或詞的所有文件,乙個表項就是乙個字表段,它記錄該文件的id和字元在該文件**現的位置情況。
由於每個字或詞對應的文件數量在動態變化,所以倒排表的建立和維護都較為複雜,但是在查詢的時候由於可以一次得到查詢關鍵字所對應的所有文件,所以效率高於正排表。在全文檢索中,檢索的快速響應是乙個最為關鍵的效能,而索引建立由於在後台進行,儘管效率相對低一些,但不會影響整個搜尋引擎的效率。
倒排表的結構圖如圖2:
正排索引是從文件到關鍵字的對映(已知文件求關鍵字),倒排索引是從關鍵字到文件的對映(已知關鍵字求文件)。
倒排索引源於實際應用中需要根據屬性的值來查詢記錄,lucene是基於倒排索引實現的。
這種索引表中的每一項都包括乙個屬性值和具有該屬性值的各記錄的位址。
由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引(inverted index)。
帶有倒排索引的檔案我們稱為倒排索引檔案,簡稱倒排檔案(inverted file)。
例項理解:
參考:
倒排索引與全文檢索
乙個未經處理的資料庫中,一般是以文件id作為索引,文件內容作為記錄 而倒排索引指的是,將單詞或記錄作為索引,將文件id作為記錄,這樣便可以方便地通過索引來查詢到其所在的文件 例如 流程 將資料庫中的結構化資料資料轉換為非結構化資料 然後將非結構化資料轉化為分詞結構 配置與使用 syl setting...
倒排索引與全文檢索
乙個未經處理的資料庫中,一般是以文件id作為索引,文件內容作為記錄 而倒排索引指的是,將單詞或記錄作為索引,將文件id作為記錄,這樣便可以方便地通過索引來查詢到其所在的文件 例如 流程 將資料庫中的結構化資料資料轉換為非結構化資料 然後將非結構化資料轉化為分詞結構 配置與使用 syl setting...
全文檢索技術 倒排索引演算法
索引在生活中存在方方面面的應用。比如你去超市,超市把商品分了不同的區間,日用平 生鮮 糧油 飲料等等,比如你去買可樂,直接去立著飲料牌子的區間去找就可以,不用去挨著尋找,那這裡的 牌子 就是索引。再以字典為例,要找 趙 這個字的詳細解釋,你不需要捧著厚厚的字典從頭到尾找,只要翻到z字母所在區間去找就...