正排索引和倒排索引理解详解


叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!
在这里插入图片描述

一、正排索引

蜘蛛爬虫经过文字提取、中文分词、去重等操作后,得到的就是独特的、能反应页面的主题内容、以词为单位的字符串。接下来搜索引擎索引程序就可以提取关键词了,为该页面建立与关键词的对应关系,而这个过程就叫做正排索引

1.正排索引: 由文档指向关键词

 文档--> 单词1 ,单词2

单词1 出现的次数  单词出现的位置; 单词2 单词2出现的位置  ...
正排索引:在搜索栏输入id查词条 
(已知id)

二、 倒排索引

当用户在搜索引擎搜索框中输入关键词的时候,搜索引擎就会把和关键词有关的页面展现给用户,而这个过程就叫做倒排索引

2.倒排索引: 由关键词指向文档

单词1--->文档1,文档2,文档3

单词2--->文档1,文档2
倒排索引:
将搜索框中的词进行搜索查到哪些id包含这个词,在查这些id,找到词条 
(通过分词查出id) 

三、为什么搜索引擎选用倒排索引?

正排索引是不能直接用于排名的,如果只存在正排索引,排名程序需要扫描所有索引库中的文件,找出包含这个关键词的文件,在进行相关性的计算。这样就不能实时返回排名结果

所以,搜索引擎会将正排索引数据库重新构造为倒排索引把页面对应到关键词的关系表,转化为关键词对应的页面。

这样,当用户搜索某个关键词的时候,排名程序在倒排索引中定位这个关键词,就可以马上找到所有包含这个关键词的页面。

四、倒排索引优点

1)不需要锁,提升并发能力,避免锁的问题。
(2)数据不变,一直保存在os cache中,只要cache内存足够。
(3)filter cache一直驻留在内存,因为数据不变。
(4)便于数据压缩,可以大幅度提高压缩率,节省cpu和io开销。
(5)在处理复杂的多关键字查询时,可在倒排表中先完成查询的并、交等逻辑运算,得到结果后再对记录进行存取,这样把对文档的查询转换为地址集合的运算,从而提高查找速度。

五、小结

正排索引和倒排索引的区别简单记为:
正排索引:文档 ---> 单词
倒排索引:单词 ---> 文档

倒排索引有着广泛的应用场景,比如:
搜索引擎、大规模数据库索引、文档检索、多媒体检索/信息检索领域等等。
总之,倒排索引在检索领域是很重要的一种索引机制。

Ending!
更多课程知识学习记录随后再来吧!

就酱,嘎啦!

在这里插入图片描述

注:
1、人生在勤,不索何获。
2、正排索引和倒排索引的区别参见博文:https://blog.csdn.net/u011243684/article/details/85264284

扫描二维码关注公众号,回复: 11811559 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_43543789/article/details/108661502
今日推荐