正向索引與反向索引(solr)

2021-09-21 05:59:46 字數 805 閱讀 1472

正向索引(正排索引):正排表是以文件的id為關鍵字,表中記錄文件中每個字的位置資訊,查詢時掃瞄表中每個文件中字的資訊直到找出所有包含查詢關鍵字的文件。

正排表結構如圖1所示,這種組織方法在建立索引的時候結構比較簡單,建立比較方便且易於維護;因為索引是基於文件建立的,若是有新的文件加入,直接為該文件建立乙個新的索引塊,掛接在原來索引檔案的後面。若是有文件刪除,則直接找到該文件號文件對應的索引資訊,將其直接刪除。但是在查詢的時候需對所有的文件進行掃瞄以確保沒有遺漏,這樣就使得檢索時間大大延長,檢索效率低下。

儘管正排表的工作原理非常的簡單,但是由於其檢索效率太低,除非在特定情況下,否則實用性價值不大。

正排

反向索引(倒排索引):倒排表以字或詞為關鍵字進行索引,表中關鍵字所對應的記錄表項記錄了出現這個字或詞的所有文件,乙個表項就是乙個字表段,它記錄該文件的id和字元在該文件**現的位置情況。

由於每個字或詞對應的文件數量在動態變化,所以倒排表的建立和維護都較為複雜,但是在查詢的時候由於可以一次得到查詢關鍵字所對應的所有文件,所以效率高於正排表。在全文檢索中,檢索的快速響應是乙個最為關鍵的效能,而索引建立由於在後台進行,儘管效率相對低一些,但不會影響整個搜尋引擎的效率。 倒排表的結構圖如圖2:

反排

關於正向索引與反向索引

這一節我們來看看搜尋引擎中最重要的幾個資料結構。前面我們說過索引包含正向索引和反向索引兩部分,首先我們看看正向索引的結構。正向索引用來儲存文件的各種屬性,從邏輯上講,正向索引其實就是乙個大陣列,陣列中每個元素就是乙個文件的屬性集合。如果正向索引是有schema的,那麼它其實就類似乙個關係表或者說二維...

關於正向索引與反向索引

這一節我們來看看搜尋引擎中最重要的幾個資料結構。前面我們說過索引包含正向索引和反向索引兩部分,首先我們看看正向索引的結構。正向索引用來儲存文件的各種屬性,從邏輯上講,正向索引其實就是乙個大陣列,陣列中每個元素就是乙個文件的屬性集合。如果正向索引是有schema的,那麼它其實就類似乙個關係表或者說二維...

正向索引 反向索引 B Tree索引

索引就是為了更快的找出需要的資訊。一般都要進行排序。正向索引 開發出來用來儲存每個文件的單詞的列表。實際上,時間 記憶體 處理器等等資源的限制,技術上正向索引是不能實現的。既 儲存乙個文件中有那些單詞。有多少單詞就有多少列。然後對每一列進行某種排序。反向索引 其中每條記錄,記錄的是乙個單詞都在那些文...