搜索引擎系列1:什么是正向索引?什么是倒排索引?
2015-07-10 11:05
134 查看
什么是正向索引、什么是倒排索引?
正向索引(forward index),反向索引(inverted index)更熟悉的名字是倒排索引。
在搜索引擎中每个文件都对应一个文件ID,文件内容被表示为一系列关键词的集合(实际上在搜索引擎索引库中,关键词也已经转换为关键词ID)。例如“文档1”经过分词,提取了20个关键词,每个关键词都会记录它在文档中的出现次数和出现位置,得到正向索引的结构如下:
“文档1”的ID >
单词1:出现次数,出现位置列表;单词2:出现次数,出现位置列表;…………。
“文档2”的ID >
此文档出现的关键词列表。
当用户在主页上搜索关键词“华为手机”时,假设只存在正向索引(forward
index),那么就需要扫描索引库中的所有文档,找出所有包含关键词“华为手机”的文档,再根据打分模型进行打分,排出名次后呈现给用户。因为互联网上收录在搜索引擎中的文档的数目是个天文数字,这样的索引结构根本无法满足实时返回排名结果的要求。
所以,搜索引擎会将正向索引重新构建为倒排索引,即把文件ID对应到关键词的映射转换为关键词到文件ID的映射,每个关键词都对应着一系列的文件,这些文件中都出现这个关键词,得到倒排索引的结构如下:
“关键词1”:“文档1”的ID,“文档2”的ID,…………。
“关键词2”:带有此关键词的文档ID列表。
注:入门级理解,持续更新ing(时:2015.7.10)
正向索引(forward index),反向索引(inverted index)更熟悉的名字是倒排索引。
在搜索引擎中每个文件都对应一个文件ID,文件内容被表示为一系列关键词的集合(实际上在搜索引擎索引库中,关键词也已经转换为关键词ID)。例如“文档1”经过分词,提取了20个关键词,每个关键词都会记录它在文档中的出现次数和出现位置,得到正向索引的结构如下:
“文档1”的ID >
单词1:出现次数,出现位置列表;单词2:出现次数,出现位置列表;…………。
“文档2”的ID >
此文档出现的关键词列表。
当用户在主页上搜索关键词“华为手机”时,假设只存在正向索引(forward
index),那么就需要扫描索引库中的所有文档,找出所有包含关键词“华为手机”的文档,再根据打分模型进行打分,排出名次后呈现给用户。因为互联网上收录在搜索引擎中的文档的数目是个天文数字,这样的索引结构根本无法满足实时返回排名结果的要求。
所以,搜索引擎会将正向索引重新构建为倒排索引,即把文件ID对应到关键词的映射转换为关键词到文件ID的映射,每个关键词都对应着一系列的文件,这些文件中都出现这个关键词,得到倒排索引的结构如下:
“关键词1”:“文档1”的ID,“文档2”的ID,…………。
“关键词2”:带有此关键词的文档ID列表。
注:入门级理解,持续更新ing(时:2015.7.10)
相关文章推荐
- 选项卡模式设计
- MyEclipse中Maven的配置
- 1.传统线程技术的回顾-JDK5多线程
- 【设计模式】动态代理Proxy_02
- 《算法4》中的堆排序
- 053第170题
- 关于 gitblite 配置的重点
- 安装Boost.Numpy
- Highcharts延x轴缩小
- 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接
- asp.net实现三层架构的例子
- (二)androidpn-server tomcat版源码解析之--push消息处理
- 操作4 mongodb备份脚本
- NSCharacterSet 最常用的用法
- 答疑帖:GNS3模拟交换机
- 第一篇文章,记录的学习编程岁月
- 在ubuntu14.04上安装python3.4.3
- 黑马程序员——Java基础--GUI
- 关于SSH的启动的LOG4J log4j:WARN No appenders could be found for logger (org.springframework.web.context
- ios开发工具及环境总结