倒排索引

什么是倒排索引

先来说说什么事正排索引,举个简单的例子,常规的数据库存储就是正排索引。
以下面的作为例子:

网页 A 中的内容片段:

Tom is a boy.

Tom is a student too.



网页 B 中的内容片段:

Jon works at school.

Tom's teacher is Jon.

构建索引时,就是在数据库里面存在两个 doc,每个 doc 记录下相应的索引信息。

image.png

这样当我们要搜索 Tom 这个关键字,就要遍历所有的记录查到索引信息,效率很慢。正排索引也有相应的优点,就是构建索引快,对于新的内容只需要增加一条记录就行了,很方便维护。

倒排索引

由于正排的耗时太长缺点,倒排就正好相反,是以 word 作为关键索引。表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段,它记录该文档的 ID 和字符在该文档中出现的位置情况。

倒排包含两部分:

        1、由不同的索引词(index term)组成的索引表,称为 “词典”(lexicon)。其中包含了各种词汇,以及这些词汇的统计信息(如出现频率 nDocs),这些统计信息可以直接用于各种排名算法。

        2、由每个索引词出现过的文档集合,以及命中位置等信息构成。也称为 “记录表”。就是正排索引产生的那张表。当然这部分可以没有。具体看自己的业务需求了。

下面是一个简单的倒排索引构建,只包含第一部分的。


image

倒排的优缺点和正排的优缺点整好相反。倒排在构建索引的时候较为耗时且维护成本较高,但是搜索耗时短。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 全文检索是信息检索技术的一种,主要是把用户的查询请求和全文中的每一个词进行比较,不考虑查询请求与文本语义上的...
    刘振锋阅读 3,755评论 0 51
  • 众所周知,“索引”是搜索引擎中最重要的核心技术之一,是“缩小搜索范围,以提高结果定位效率”的技术担当。 按照不同划...
    橘色对白阅读 9,236评论 3 12
  • 见其名知其意,有倒排索引,对应肯定,有正向索引。正向索引(forward index),反向索引(inverted...
    时待吾阅读 1,112评论 0 0
  • 背景 在关系型数据库中,索引是检索数据的最有效率方式,但是在海量的数据中,需要实时检索数据的时候,关系型数据库的索...
    ninetyhe_阅读 12,924评论 1 26
  • 四月的墙 王宜振 四月的墙很薄很薄 只消捅一个小洞 就会漏进夏天的气息 夏天的气息很美丽很生动 有一只春天的蝴蝶 ...
    龟壳面阅读 2,184评论 0 0