索引是一種用于數據快速查找的數據結構,哈希表、二分查找、分塊查找也可以視為一種索引,這類索引的價值在于在較短的時間內獲得最相關、最全、最深的數據集合。 在通常使用的索引中,大多是基于順序表、哈希表或B+樹的索引。倒排索引(InvertedIndex)主要用于信息檢索領域,它是其中最常用的數據索引存儲結構,被用來存儲文檔集合中某個單詞對應的文檔集合及單詞在文件中存在的位置,因此也稱為反向索引,與其相對應的是正向索引。正向索引用于存儲每個文件的單詞列表,并記錄其位置。以下表中所示的文件及文件對應句子內容為例。 正向索引文件與文件對應內容示例:

對于上表中句子建立正向索引表如下:

對于上面中的句子建立倒排序索引如下:

通過上圖的內容,可以記錄某個詞語對應在某些文件的出現并記錄在文件中的位置。
在信息檢索中,可以根據文件生成的倒排索引,當用戶檢索“數據算法”時,會將詞語對應的文件集合取出,并且會根據相關性對文件進行排序處理,得到最終檢索后的結果。
此外,在某些檢索系統中,可能會有不存儲詞語在文件中位置的情況,但是目前大多數檢索系統都會存儲,主要基于兩個原因:一是在海量數據的檢索情況下,全文檢索過程中如果沒有記錄位置,在獲取文件動態摘要時,會通過遍歷文件的方式查找關鍵詞出現的位置,存在性能損耗,而這對于數據量級較小的系統則影響較??;二是在檢索結果展示過程中,為獲得較好的動態摘要,需要對文件內搜索詞分布情況進行統計,一般情況下會在較集中詞語的區域提取摘要,如果提前確定關鍵詞位置,對檢索體驗有很好的提升。
倒排索引的數據結果是檢索系統中非常重要的組成部分,檢索時間是檢索系統中最重要的衡量指標之一,其核心在于倒排索引的設計。
雖然哈希表等其他數據結構也能夠較好地處理數據索引問題,但是對于數據量較大的情況,哈希表的性能也會受到較大的影響。在數據量較大時,會將海量數據進行分布式索引,分布式哈希表和分布式倒排索引則是較好的處理方式,但從檢索的綜合評價角度,分布式索引更為合適。