0%

什么是倒排索引?

前言

在学习 ES 的过程中,简单的介绍下倒排索引是怎么回事,对倒排索引有一个宏观的感受。

正排索引

在讲述倒排索引之前先介绍下正排索引。正排索引就是如下表形式:

文档id 文档内容
1 什么是正排索引
2 什么是倒排索引
3 正排索引和倒排索引

倒排索引

倒排索引就是对上表进行转换,最简单的倒排索引如下表所示:

单词 文档ids
什么 1,2
1,2
正排 1,3
倒排 2,3
索引 1,2,3
3

词频(TF)和位置(POS)

上表所示的倒排索引之所以是最简单的,是因为这个索引系统只记载了哪些文档包含某个单词。实用的倒排索引还可以记载更多的信息,如下表第3列的词频位置

TF:单词在某个文档中出现的次数
POS:单词在文档中出现的位置

单词 文档ids 文档id:词频TF:<位置POS>
什么 1,2 1:1:<1>,2:1:<1>
1,2 1:1:<2>,2:1:<2>
正排 1,3 1:1:<3>,3:1:<0>
倒排 2,3 2:1:<3>,3:1:<5>
索引 1,2,3 1:1:<5>,2:1:<5>,3:2:<2,7>
3 3:1:<4>

以“索引”这个单词为例,“3:2:<2,7>”:表示在文档id是3的文档中出现2次,在文档中的位置分别是2和7。

参考资源

https://www.cnblogs.com/ottll/p/9470732.html