倒排索引的理解与应用

/ 编程思想 / 没有评论 / 236浏览

排索引在维基百科上的解释是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。最长应用于文档检索系统中。

我们用维基百科的上的例子来看:

alt

为每个单词简历建立索引,根据并集查出所在的文本。

我们可以为这种方式进行改进,比如索引用二进制数据,使用boost库dynamic_bitset容器(https://izualzhy.cn/boost-dynamic-bitset)。

比较成功的应用是Elasticsearch,其中的搜索就是采用倒排索引。与倒排索引相对的是正向索引,解释就是

“文档1”的ID > 单词1:出现次数,出现位置列表;单词2:出现次数,出现位置列表;…………。

“文档2”的ID > 此文档出现的关键词列表。

一般是通过key,去找value。

使用的时候可以用map构造这种数据结构,比较方便。