倒排索引

标签: 倒排索引 | 发表时间:2013-08-30 22:31 | 作者:undoner
出处:http://blog.csdn.net
倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。

有两种不同的反向索引形式:

一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表。 
一个单词的水平反向索引(或者完全反向索引)又包含每个单词在一个文档中的位置。
后者的形式提供了更多的兼容性(比如短语搜索),但是需要更多的时间和空间来创建。

例子[编辑]以英文为例,下面是要被索引的文本:

"it is what it is" 
"what is it" 
"it is a banana" 
我们就能得到下面的反向文件索引:

 "a":      {2}
 "banana": {2}
 "is":     {0, 1, 2}
 "it":     {0, 1, 2}
 "what":   {0, 1}
检索的条件"what", "is" 和 "it" 将对应这个集合:{0,1}∩{0,1,2}∩{0,1,2}={0,1}。

对相同的文字,我们得到后面这些完全反向索引,有文档数量和当前查询的单词结果组成的的成对数据。 同样,文档数量和当前查询的单词结果都从零开始。所以,"banana": {(2, 3)} 就是说 "banana"在第三个文档里 (),而且在第三个文档的位置是第四个单词(地址为 3)。

"a":      {(2, 2)}
"banana": {(2, 3)}
"is":     {(0, 1), (0, 4), (1, 1), (2, 1)}
"it":     {(0, 0), (0, 3), (1, 2), (2, 0)} 
"what":   {(0, 2), (1, 0)}

如果我们执行短语搜索"what is it" 我们得到这个短语的全部单词各自的结果所在文档为文档0和文档1。但是这个短语检索的连续的条件仅仅在文档1得到。

应用


反向索引数据结构是典型的搜索引擎检索算法重要的部分。 
一个搜索引擎执行的目标就是优化查询的速度:找到某个单词在文档中出现的地方。以前,正向索引开发出来用来存储每个文档的单词的列表,接着掉头来开发了一种反向索引。 正向索引的查询往往满足每个文档有序频繁的全文查询和每个单词在校验文档中的验证这样的查询。 
实际上,时间、内存、处理器等等资源的限制,技术上正向索引是不能实现的。 
为了替代正向索引的每个文档的单词列表,能列出每个查询的单词所有所在文档的列表的反向索引数据结构开发了出来。 
随着反向索引的创建,如今的查询能通过立即的单词标示迅速获取结果(经过随机存储)。随机存储也通常被认为快于顺序存储。 





作者:undoner 发表于2013-8-30 21:44:09 原文链接
阅读:40 评论:0 查看评论

相关 [倒排索引] 推荐:

倒排索引

- - ITeye博客
倒排索引是文档检索系统中最常见的数据结构,被广泛的应用于搜索引擎. 它是一种根据内容查找文档的方式. 由于不是根据文档来找内容,而是根据进行了相反的操作,因此叫做倒排索引. 倒排索引的一个简单结构如下图所示:. 最常见的是使用词频作为权重,即单词在一个文档中出现的次数. 因此,当搜索条件为“MapReduce”“is”“simple”的时候,对应的集合为{(0.txt,1),(1.txt,1),(2.txt,2)}且{(0.txt,1),(1.txt,2)}且{(0.txt,1),(1.txt,1)}={0.txt,1.txt}.

hadoop倒排索引

- - CSDN博客云计算推荐文章
看到很多的hadoop关于倒排索引的例子,但是我想写一个属于我自己的,加入了本人对于hadoop中mapreduce的理解. CHENGDU - Death toll from a colliery blast on Saturday in southwest China's Sichuan Province rose to 27, local authorities said.

ElasticSearch 倒排索引、分词

- - 行业应用 - ITeye博客
es使用称为倒排索引的结构达到快速全文搜索的目的. 一个倒排索引包含一系列不同的单词,这些单词出现在任何一个文档,. 对于每个单词,对应着所有它出现的文档. 比如说,我们有2个文档,每个文档有一个conteng字段. 我们首先对每个字段进行分词,我们称之为terms或者tokens,创建了一些列有序列表,.

MapReduce 编程之 倒排索引

- - CSDN博客云计算推荐文章
本文调试环境: ubuntu 10.04 , hadoop-1.0.2. hadoop装的是伪分布模式,就是只有一个节点,集namenode, datanode, jobtracker, tasktracker...于一体. 本文实现了简单的倒排索引,单词,文档路径,词频,重要的解释都会在代码注视中.

MapReduce案例之倒排索引

- - 行业应用 - ITeye博客
1       倒排索引. "倒排索引"是文档检索系统中最常用的数据结构,被广泛地应用于全文搜索引擎. 它主要是用来存储某个单词(或词组)在一个文档或一组文档中的存储位置的映射,即提供了一种根据内容来查找文档的方式. 由于不是根据文档来确定文档所包含的内容,而是进行相反的操作,因而称为倒排索引(Inverted Index).

基于hadoop的mapreduce实现倒排索引

- - ITeye博客
基于 hadoop 的 mapreduce 实现倒排索引. 倒排索引(英语: Inverted index ),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射. 它是文档检索系统中最常用的数据结构.

搜索引擎-倒排索引基础知识

- - CSDN博客推荐文章
       单词-文档矩阵是表达两者之间所具有的一种包含关系的概念模型,图3-1展示了其含义. 图3-1的每列代表一个文档,每行代表一个单词,打对勾的位置代表包含关系.                                                                  图3-1 单词-文档矩阵.

[原]程序员编程艺术第二十三~四章:杨氏矩阵查找,倒排索引提取关键词

- - 结构之法 算法之道
  第二十三、四章:杨氏矩阵查找,倒排索引提取关键词.      本文先来回答一个何谓编程,何谓算法的问题(同时,本文会少许论述编程与算法的关系). 所谓编程,就是把心中的想法用程序实现;所谓算法,就是思考如何把心中的想法更好地实现. 只有先把心中的想法实现了以后,才会去考虑如何更好地实现,才会去考虑效率,改进,优化.