python正向索引 反向索引_理解正向索引
倒排索引也叫做反向索引(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正向索引 反向索引_理解正向索引相关推荐
- mysql索引优化是什么意思_理解MySQL——索引与优化
写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将 ...
- mysql memory 索引_理解MySQL——索引与优化
索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将对整个表进 ...
- python正则表达式是什么意思_理解python正则表达式
在python中,对正则表达式的支持是通过re模块来支持的.使用re的步骤是先把表达式字符串编译成pattern实例,然后在使用pattern去匹配文本获取结果. 其实也有另外一种方式,就是直接使用r ...
- mysql使索引失效语句_会导致索引失效语句
1.使用like关键字模糊查询时,% 放在前面索引不起作用,只有"%"不在第一个位置,索引才会生效(like '%文'–索引不起作用) 2.使用联合索引时,只有查询条件中使用了这些 ...
- Mysql索引使用情况_介绍mysql索引失效的情况
mysql视频教程栏目索引失效的情况. 索引对于MySQL而言,是非常重要的篇章.索引知识点也巨多,要想掌握透彻,需要逐个知识点一一击破,今天来先来聊聊哪些情况下会导致索引失效. 图片总结版 相关免费 ...
- 建立了索引怎么使用_对MySQL索引的认识
1.你一般怎么建索引的? 去my.cnf里配置三个配置 打开慢查询日志slow_query_log=1慢查询日志存储路径slow_query_log_file=/var/log/mysql/log-s ...
- mysql 复合索引 悲观锁_对MySQL索引、锁及事务的简单分析
一.索引的数据结构 1.二叉搜索树实现的索引 二叉搜索树如下图,它查找元素的时间复杂度为O(logn) 但如果经常出现增删操作,最后导致二叉搜索树变成线性的二叉树,这样它查找元素的时间复杂度就会变成O ...
- mysql 索引太长_修改Mysql索引长度限制
mysql 索引过长1071-max key length is 767 byte 问题 create table: Specified key was too long; max key lengt ...
- lucene索引MySQL原因_影响Lucene索引速度原因以及提高索引速度技巧
在网上看了一篇外文文章,里面介绍了提高Lucene索引速度的技巧,分享给大家. 先来看下影响索引的主要因素: MaxMergeDocs 该参数决定写入内存索引文档个数,到达该数目后就把该内存索引写入硬 ...
- mysql 索引长度限制_修改Mysql索引长度限制
mysql 索引过长1071-max key length is 767 byte 问题 create table: Specified key was too long; max key lengt ...
最新文章
- LeetCode简单题之按奇偶排序数组
- C++中各种弹出对话框
- 初探HTML5的本地存储
- android studio 动画效果图,Android Studio如何动画移动视图?
- JAVA WEB之Spring4.x JdbcTemplate
- Flex 3调试Flash Player 10完美解决
- spark sql 上个月_Spark学习之路 (十八)SparkSQL简单使用
- android点击通知栏之后消失,为什么noftifications出现在android通知栏中一段时间​​然后消失...
- NeurIPS 2021 Transformer部署难?北大华为诺亚提出Vision Transformer的后训练量化方法...
- 把list清空和赋值null对内存释放的区别
- 两台电脑怎么互传文件?用它就能搞定!
- 《Excel 小技巧》之 一个单元格换行显示日期和星期
- 发票显示服务器不可用什么原因,增值税发票服务平台常见问题汇总:发票勾选需要注意哪些问题?...
- IP属地靠谱吗?或是一把双刃剑
- 禁止使用计算机热点,设置Windows 10 禁止自动连接Wifi热点
- 什么是下一代防火墙NGFW(Next Generation Firewall)?
- 电脑上复制、粘贴及剪切功能用不了是什么原因
- 微信小程序苹果手机statusBarHeight状态栏高度为0
- ps写实计算机图标,PS临摹写实图标教程
- php 上传 413,PHP CURL上传文件出现413 Request Entity Too Large
热门文章
- 腾讯多媒体实验室画质增强技术的前沿应用
- 【前端】移动互联动画
- c语言如何计算出迭代次数,计算方法——C语言实现——迭代法求解线性方程组...
- 明星里程被盗?看区块链如何加强个人信息安全保护
- packages are looking for funding run `npm fund` for details ( npm 支持开发者添加募款链接)
- 粉丝看了教程成功发文章了,恭喜一下,并说下近期计划
- 高盐废水处理工艺——料液精制与除杂
- 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
- C语言电信优惠套餐推荐系统
- java 载入类的三种方法