正排索引 與 倒排索引

正排索引(正向索引)

正排表是以文檔的ID爲關鍵字,表中記錄文檔中每一個字的位置信息,查找時掃描表中每一個文檔中字的信息直到找出全部包含查詢關鍵字的文檔。性能

正排表結構如圖1所示,這種組織方法在創建索引的時候結構比較簡單,創建比較方便且易於維護;由於索引是基於文檔創建的,如果有新的文檔加入,直接爲該文檔創建一個新的索引塊,掛接在原來索引文件的後面。如果有文檔刪除,則直接找到該文檔號文檔對應的索引信息,將其直接刪除。可是在查詢的時候需對全部的文檔進行掃描以確保沒有遺漏,這樣就使得檢索時間大大延長,檢索效率低下。     搜索引擎

儘管正排表的工做原理很是的簡單,可是因爲其檢索效率過低,除非在特定狀況下,不然實用性價值不大。索引

倒排索引(反向索引)

倒排表以字或詞爲關鍵字進行索引,表中關鍵字所對應的記錄表項記錄了出現這個字或詞的全部文檔,一個表項就是一個字表段,它記錄該文檔的ID和字符在該文檔中出現的位置狀況。文檔

因爲每一個字或詞對應的文檔數量在動態變化,因此倒排表的創建和維護都較爲複雜,可是在查詢的時候因爲能夠一次獲得查詢關鍵字所對應的全部文檔,因此效率高於正排表。在全文檢索中,檢索的快速響應是一個最爲關鍵的性能,而索引創建因爲在後臺進行,儘管效率相對低一些,但不會影響整個搜索引擎的效率。
倒排表的結構圖如圖2:get

正排索引是從文檔到關鍵字的映射(已知文檔求關鍵字),倒排索引是從關鍵字到文檔的映射(已知關鍵字求文檔)。效率

相關文章
相關標籤/搜索