什么是倒排索引?

索引 是用来更快的找出需要的信息。

我们一般理解的索引都是正向索引,如数据库表

文档id字段1字段2字段4字段4
文档1单词e单词b单词e单词g
文档2单词c单词c单词d单词a
文档3单词a单词a单词c单词f

在这里 文档id是主键


如果我们想查找 '单词a‘  ,我们需要从文档1开始逐个列逐个字段去遍历查找才能得出结果



那么搜索引擎怎么做呢

如果是把 列x 看成是 一篇文章 字段x 对应的是该文章的单词,用上面的这个表进行存储的话,我们需要多少列呢?

当查找的时候又该如何查找呢?


每篇文件都由不同的单词组成,单词各不相同,又或多或少。

显然,如果使用上面这个表进行存储,效率低下不说,限于目前计算机的条件,也是不可能实现的。


那么搜索引擎怎么做呢?倒排索引


“倒排索引”这个名词很唬人,其实原理很简单。

其中每条记录,记录的是一个单词都在哪些文档中出现。然后对这些记录进行排序。


举个例子,我们有2篇文档,内容分别如下

文档id文档内容
1i love honor
2i  like mm

生成倒排索引如下

单词文档id 
i1,2i 在文档1和2中出现
love1love在文档1中出现
honor1honor在文档1中出现
like2like在文档2中出现
mm2mm在文档2中出现
在这里 单词是主键


如果我们搜索 ‘honor’ 这个关键字,是不是一下就能将honor所在的文档找出来?


这就是所谓的倒排索引,你看懂了吗?

转载于:https://www.cnblogs.com/hercules9/archive/2012/03/05/2461395.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值