博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解正向索引
阅读量:6308 次
发布时间:2019-06-22

本文共 1054 字,大约阅读时间需要 3 分钟。

 

 

倒排索引也叫做反向索引(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….

 

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

 

转载于:https://www.cnblogs.com/wangtao_20/p/3647193.html

你可能感兴趣的文章
技能点
查看>>
读书笔记《乌合之众》
查看>>
Hadoop日记Day1---Hadoop介绍
查看>>
iOS 学习资料汇总
查看>>
centos7 yum安装jdk
查看>>
Bluedroid与BluZ,蓝牙测试方法的变动(基于bludroid和BlueZ的对比)
查看>>
接口和抽象类有什么区别
查看>>
Linux 下添加用户,修改权限
查看>>
请问view controller scene,该如何删除
查看>>
bootstrap新闻模块样式模板
查看>>
zzzzw_在线考试系统①准备篇
查看>>
App Store 审核被拒的23个理由
查看>>
剑指offer第二版-1.赋值运算符函数
查看>>
javascript 对象
查看>>
Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
查看>>
Echart:前端很好的数据图表展现工具+demo
查看>>
CATransform3D iOS动画特效详解
查看>>
Linux VNC黑屏(转)
查看>>
Java反射简介
查看>>
react脚手架应用以及iview安装
查看>>