什么是倒排索引
概念
倒排索引(英语:Inverted index),也常被称为反向索引,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:“单词词典”和“倒排文件”。
倒排索引有两种不同的形式:
一条记录的水平反向索引:包含每个引用单词的文档的列表。
一个单词的水平反向索引:又包含每个单词在一个文档中的位置。
后者的形式提供了更多的兼容性(比如短语搜索),但是需要更多的时间和空间来创建。
现代搜索引擎的索引都是基于倒排索引。相比“签名文件”、“后缀树”等索引结构,“倒排索引”是实现单词到文档映射关系的最佳实现方式和最有效的索引结构。
为什么叫倒排索引
由于正常的数据结构是通过记录来确定属性,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。
举例:
关系数据库中,先找到行,再找到对应的值;
倒排索引中,先找到值,再找到对应的行。
过程
索引创建过程
- 输入原始数据并进行编号,形成文档列表
- 按照分词库进行单词拆分,得到词条。对词条进行编号,以词条创建索引。然后记录下包含该词条的所有文档编号(及其它信息)。