`

倒排索引

 
阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/2358625

 

倒排索引

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

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

  • 一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表。
  • 一个单词的水平反向索引(或者完全反向索引)又包含每个单词在一个文档中的位置。

后者的形式提供了更多的兼容性(比如短语搜索),但是需要更多的时间和空间来创建。

 

以英文为例,下面是要被索引的文本:

T0 = "it is what it is"  
T1 = "what is it"  
T2 = "it is a banana" 

我们就能得到下面的反向文件索引:

 "a":      {2}
 "banana": {2}
 "is":     {0, 1, 2}
 "it":     {0, 1, 2}
 "what":   {0, 1}

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

 

 

图例

文档集合

简单的倒排索引


 

带有单词频率信息的倒排索引

 

带有单词频率、文档频率和出现位置信息的倒排索引

 

Reference

https://en.wikipedia.org/wiki/Inverted_index

  • 大小: 22.6 KB
  • 大小: 26.1 KB
  • 大小: 30.1 KB
  • 大小: 51.7 KB
分享到:
评论

相关推荐

    c++实现倒排索引算法

    倒排索引是一种高效的数据结构,常用于全文搜索引擎和数据库系统中,用于快速查找包含特定词汇的文档或数据。在C++中实现倒排索引算法可以帮助我们理解其原理并优化搜索性能。以下是对倒排索引算法及其C++实现的详细...

    c++构建倒排索引并搜索

    在计算机科学领域,倒排索引(Inverted Index)是一种高效的数据结构,常用于全文搜索引擎中,以便快速地找出文档中包含特定词汇的所有位置。在这个C++项目中,我们将探讨如何构建倒排索引以及如何进行搜索操作。 ...

    文本全文搜索引擎 利用倒排索引实现

    倒排索引是实现这种搜索引擎的关键技术,它极大地优化了文本匹配和搜索过程。在这个主题中,我们将深入探讨倒排索引的概念、工作原理以及在Python中的实现。 **倒排索引概念** 倒排索引(Inverted Index)是一种...

    基于给定的文档生成倒排索引的全部源码

    本系统源码是个人原创文章系列,程序员编程艺术第二十六章:基于给定的文档生成倒排索引的编码与实践的整个工程源码 look:http://blog.csdn.net/v_july_v/article/details/7109500 windows下VS2010,linux环境下皆...

    MapReduce操作实例-倒排索引.pdf

    在计算机科学领域,尤其是大数据处理和搜索引擎技术中,倒排索引(Inverted Index)是一种高效的数据结构,常用于快速定位文档中特定关键词的位置。MapReduce是Apache Hadoop框架下的并行计算模型,用于处理和生成...

    C++倒排索引

    倒排索引是一种高效的信息检索方法,常用于搜索引擎和文本处理系统中,它允许我们快速找到包含特定词汇的所有文档。在C++中实现倒排索引可以帮助我们理解其背后的算法和数据结构。在这个项目中,我们将关注如何读入...

    大数据实验报告Hadoop编程实现InvertedIndex文档倒排索引程序附源码.doc

    Hadoop大数据InvertedIndex文档倒排索引程序实验报告 大数据实验报告中,实现了使用Hadoop编程的InvertedIndex文档倒排索引程序。该程序使用Hadoop的MapReduce框架,通过Map、Combine和Reduce三个阶段,实现了文档...

    倒排索引处理文档

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

    倒排索引如何建立 以及如何压缩

    倒排索引是搜索引擎技术中的核心组件,主要用于支持快速的全文搜索。它不同于常见的正排索引(直接索引),后者以文档为单位,记录了文档中每个单词的位置信息。而倒排索引则是以单词为单位,记录了包含该单词的所有...

    基于HADOOP的倒排索引实现

    【标题】基于HADOOP的倒排索引实现 在大数据处理领域,Hadoop是一个广泛使用的开源框架,它提供了一种分布式计算模型——MapReduce,用于处理和存储海量数据。倒排索引是一种高效的文本检索技术,常用于搜索引擎和...

    倒排索引的资料,ppt版,很详细

    倒排索引是一种高效的数据结构,常用于全文搜索引擎和数据库系统中,用于快速定位文档或数据中的特定词汇。它的核心思想是将数据集中每个单词出现的位置进行反转,从而能够快速找到包含某个词的所有文档。这一概念在...

    基于倒排索引表的搜索引擎简单实现

    1. **倒排索引**:倒排索引是一种数据结构,它将每个词映射到包含这个词的所有文档的列表。在传统的正向索引中,我们通过文档ID查找关键词;而在倒排索引中,我们通过关键词查找文档ID。这种方法极大地优化了搜索...

    Hadoop mapreduce 实现InvertedIndexer倒排索引

    Hadoop mapreduce 实现InvertedIndexer倒排索引,能用。

    制作简单的搜索引擎,构建倒排索引

    搜索引擎是信息检索领域的重要工具,其核心在于倒排索引的构建。倒排索引是一种高效的数据结构,用于快速定位到包含特定查询词的文档。在这个项目中,我们使用简单的C语言来实现这一过程,这对于初学者理解搜索引擎...

    倒排索引java实现

    倒排索引是一种高效的数据结构,常用于全文搜索引擎中,以快速定位文档中包含特定关键词的位置。在Java中实现倒排索引,可以利用标准库或者其他第三方库,如Apache Lucene,但这里我们主要讨论基于自定义代码的实现...

    北京大学网络大数据管理与应用作业:倒排索引

    **倒排索引详解** 倒排索引是信息检索领域中的一个重要概念,它是一种用于快速查找数据结构,常被用于全文搜索引擎中。在倒排索引中,每个文档中的单词都会对应一个列表,这个列表包含了所有包含该单词的文档的标识...

    hadoop倒排索引

    hadoop倒排索引,注意参数的设置,可以在eclipse中直接编辑

Global site tag (gtag.js) - Google Analytics