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

本文共 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

你可能感兴趣的文章
使用Moblin SDK开发应用程序 – Moblin软件架构
查看>>
编译原理:正规式转变成DFA算法
查看>>
纠正交换机原理误解
查看>>
打造立体安保方案 瑞星防毒墙为陕西省人民检察院保驾护航
查看>>
基于MMM实现MariaDB的高可用
查看>>
【基础】华为设备NAT功能配置实战全集
查看>>
ORACLE中的SQL%ROWCOUNT与MySQL中的ROW_COUNT()的一点异同
查看>>
MySQL删库出错
查看>>
BUG管理系统(Mantis)迁移实录
查看>>
[C# 网络编程系列]专题十:实现简单的邮件收发器
查看>>
设置用户密码
查看>>
Java的String和StringBuffer和StringBuilder详解
查看>>
3. 什么是JSR参考实现? - JavaEE基础系列
查看>>
HTTP协议之chunk编码(分块传输编码
查看>>
Jetty JNDI开发实战(上)
查看>>
PowerShell远程管理Windows Server(3):工作组环境
查看>>
sparse模式下multicast配置
查看>>
Enumerable.Select<TSource, TResult> 方法介绍
查看>>
建造者模式
查看>>
RestEasy Web服务客户端调用
查看>>