倒排索引也叫做反向索引(inverted单词也有反转的意思,只不过大家喜欢翻译成倒排索引)。

倒排索引在搜索引擎中经常用到,倒排索引也叫做反向索引。某天在想,为什么叫做倒排索引呢?倒过来的,反转过来的。那么,非倒排索引是什么样子的。解释一大堆。云里雾里。

后来知道,反向索引是相对正向索引而言的,那什么是正向索引?我想,了解了正向索引,就能知道反向索引的产生背景了。

下面是网上一些资料说法:

每个文件都对应一个文件ID,文件内容被表示为一串关键词的*。实际上在搜索引擎索引库中,关键词也已经转换为关键词ID。这样的数据结构就称为正向索引。

倒排索引正向索引还不能直接用于排名。假设用户搜索关键词2,如果只存在正向索引的话,排名程序需要扫描所有索引库中的文件,找出包含关键词2 的文件(索引文件),再进行相关性计算。这样的计算量无法满足实时返回排名结果的要求。所以搜索引擎会将正向索引数据库重新构造为倒排索引,把文件对应到关键词的映射转换为关键词到文件的映射,每个关键词都对应着一系列文件,这些文件中都出现了这个关键词。

搜索引擎工作原理之预处理

预处理总共分为几个步骤:1.提取文字、2.中文分词、3.去停止词、4.消除噪声、5.去重、6.正向索引、7.倒排索引、8.链接关系计算、9.特殊文件处理

上面说法感觉不是很明白。现在整理一下自己的理解

为每篇文档生成一个关键词集合,也就是提取这篇文档中的所有关词

比如文档1

经过分词,提取文档1中出现的关键词有20个

这个20个关键词集合起来,每个关键词都会顺便记录它出现在文档的位置,出现的次数等信息

正向索引的结构像下面这样子的:

文档编号1  此文档中出现的关键词列表(单词1,出现位置,出现次数;单词2,出现位置,出现次数………..)

文档编号2  此文档中出现的关键词列表

这是正向索引。

如果要搜索关键词”单词1”,则去正向索引可以直接查出来哪些文档包含了单词1。正向索引还是需要遍历扫描(扫描所有正向索引文件才知道哪些文档带有某个关键词),性能比较慢。

顿时明白了某个资料中提到这句话:实际上,时间、内存、处理器等等资源的限制,技术上正向索引是不能实现的。

跟正向索引相比,反向索引就是反过来。怎么个反过来法呢?

左边是关键词,右边是文档编号,如下:

关键词1   带有此关键词的文档编号1,文档编号2….

关键词2   带有此关键词的文档编号1,文档编号2….

很多介绍太学术化了,即便是做技术开发的,没有实际应用过,一时难以理解。

python正向索引 反向索引_理解正向索引相关推荐

  1. mysql索引优化是什么意思_理解MySQL——索引与优化

    写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将 ...

  2. mysql memory 索引_理解MySQL——索引与优化

    索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将对整个表进 ...

  3. python正则表达式是什么意思_理解python正则表达式

    在python中,对正则表达式的支持是通过re模块来支持的.使用re的步骤是先把表达式字符串编译成pattern实例,然后在使用pattern去匹配文本获取结果. 其实也有另外一种方式,就是直接使用r ...

  4. mysql使索引失效语句_会导致索引失效语句

    1.使用like关键字模糊查询时,% 放在前面索引不起作用,只有"%"不在第一个位置,索引才会生效(like '%文'–索引不起作用) 2.使用联合索引时,只有查询条件中使用了这些 ...

  5. Mysql索引使用情况_介绍mysql索引失效的情况

    mysql视频教程栏目索引失效的情况. 索引对于MySQL而言,是非常重要的篇章.索引知识点也巨多,要想掌握透彻,需要逐个知识点一一击破,今天来先来聊聊哪些情况下会导致索引失效. 图片总结版 相关免费 ...

  6. 建立了索引怎么使用_对MySQL索引的认识

    1.你一般怎么建索引的? 去my.cnf里配置三个配置 打开慢查询日志slow_query_log=1慢查询日志存储路径slow_query_log_file=/var/log/mysql/log-s ...

  7. mysql 复合索引 悲观锁_对MySQL索引、锁及事务的简单分析

    一.索引的数据结构 1.二叉搜索树实现的索引 二叉搜索树如下图,它查找元素的时间复杂度为O(logn) 但如果经常出现增删操作,最后导致二叉搜索树变成线性的二叉树,这样它查找元素的时间复杂度就会变成O ...

  8. mysql 索引太长_修改Mysql索引长度限制

    mysql 索引过长1071-max key length is 767 byte 问题 create table: Specified key was too long; max key lengt ...

  9. lucene索引MySQL原因_影响Lucene索引速度原因以及提高索引速度技巧

    在网上看了一篇外文文章,里面介绍了提高Lucene索引速度的技巧,分享给大家. 先来看下影响索引的主要因素: MaxMergeDocs 该参数决定写入内存索引文档个数,到达该数目后就把该内存索引写入硬 ...

  10. mysql 索引长度限制_修改Mysql索引长度限制

    mysql 索引过长1071-max key length is 767 byte 问题 create table: Specified key was too long; max key lengt ...

最新文章

  1. LeetCode简单题之按奇偶排序数组
  2. C++中各种弹出对话框
  3. 初探HTML5的本地存储
  4. android studio 动画效果图,Android Studio如何动画移动视图?
  5. JAVA WEB之Spring4.x JdbcTemplate
  6. Flex 3调试Flash Player 10完美解决
  7. spark sql 上个月_Spark学习之路 (十八)SparkSQL简单使用
  8. android点击通知栏之后消失,为什么noftifications出现在android通知栏中一段时间​​然后消失...
  9. NeurIPS 2021 Transformer部署难?北大华为诺亚提出Vision Transformer的后训练量化方法...
  10. 把list清空和赋值null对内存释放的区别
  11. 两台电脑怎么互传文件?用它就能搞定!
  12. 《Excel 小技巧》之 一个单元格换行显示日期和星期
  13. 发票显示服务器不可用什么原因,增值税发票服务平台常见问题汇总:发票勾选需要注意哪些问题?...
  14. IP属地靠谱吗?或是一把双刃剑
  15. 禁止使用计算机热点,设置Windows 10 禁止自动连接Wifi热点
  16. 什么是下一代防火墙NGFW(Next Generation Firewall)?
  17. 电脑上复制、粘贴及剪切功能用不了是什么原因
  18. 微信小程序苹果手机statusBarHeight状态栏高度为0
  19. ps写实计算机图标,PS临摹写实图标教程
  20. php 上传 413,PHP CURL上传文件出现413 Request Entity Too Large

热门文章

  1. 腾讯多媒体实验室画质增强技术的前沿应用
  2. 【前端】移动互联动画
  3. c语言如何计算出迭代次数,计算方法——C语言实现——迭代法求解线性方程组...
  4. 明星里程被盗?看区块链如何加强个人信息安全保护
  5. packages are looking for funding run `npm fund` for details ( npm 支持开发者添加募款链接)
  6. 粉丝看了教程成功发文章了,恭喜一下,并说下近期计划
  7. 高盐废水处理工艺——料液精制与除杂
  8. 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
  9. C语言电信优惠套餐推荐系统
  10. java 载入类的三种方法