倒排索引(inverted index),也常被称为反向索引、植入档案或反向档案,是一种索引方法,被用来存储在在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。
举例
数据表:以英文为例,下面是要被索引的文本,如表1-1所示
![倒排索引 - 豆豆 - 豆豆的博客](http://img5.ph.126.net/qZeZqprHq1Oh6E7GJ7-JqA==/2530460040645856475.jpg)
表1-1
索引表:下面我们就得到反向索引文件。如表1-2所示
![倒排索引 - 豆豆 - 豆豆的博客](http://img1.ph.126.net/DSNR43OBdTYiYzktqJgUBg==/59391220103007701.jpg)
表1-2
简化索引表:我们将PPTID直接用ID来表示,如表1-3所示
![倒排索引 - 豆豆 - 豆豆的博客](http://img7.ph.126.net/_n6dl6yjcr9TrjOSurvHuw==/1278740819213564037.jpg)
表1-3
倒排序表:检索的条件“what”,“is”,“it”将对应这个集合:{1,2}
∩
{1,1,2,3,4}
∩
{1,1,2,3}={1,2}。对于相同的文字,我们得到后面这些完全反向索引,有文档数量和当前查询的单词结果组成的成对数据。同样,文档数量和当前查询的单词结果都从零开始。所以,“bananan”:(3,4)就是说“banana”在第三个文档里(PPT3),而且在第三个文档的位置是第四个单词(地址为4)。
![倒排索引 - 豆豆 - 豆豆的博客](http://img1.ph.126.net/iKAL-Gz5MrWya_ZKmi7JKQ==/1121677782209025111.jpg)
表1-4
关于建立倒排索引其实就向我们写一本小说一样,就是要建立一个目录是,让读者清楚知道他想了解的章节标题所对应的页码。