倒排索引

由来

正向索引: 文档–>单词

如果使用正向索引, 当用户搜索 关键词 A 时, 需要扫描索引库中的所有文档,
找出所有包含 A 的文档, 然后根据打分模型进行打分, 排出名次后 呈现给用户。

这样做,无法满足实时返回结果给用户的 需求。

倒排索引: “关键词” --> 带有此关键词的 文档ID列表

详细

实现 “单词–文档矩阵”的一种具体存储形式。

示例

倒排索引

倒排索引

参数解释:
单词ID: 记录每个单词的单词编号
单词: 对应的单词
文档频率: 代表文档集合中有多少个文档包含某个单词
倒排列表:包含单词ID及其他必要信息
DocId:单词出现的文档id
TF:单词在某个文档中出现的次数
POS:单词在文档中出现的位置

举例:
以单词“拉斯”为例,其单词编号为8,文档频率为2,代表整个文档集合中有两个文档包含这个单词,对应的倒排列表为:{(3;1;<4>),(5;1;<4>)},其含义为在文档3和文档5出现过这个单词,单词频率都为1,单词“拉斯”在两个文档中的出现位置都是4,即文档中第四个单词是“拉斯”。

参考

https://www.cnblogs.com/zlslch/p/6440114.html