`
臻是二哥
  • 浏览: 188572 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
Group-logo
Java技术分享
浏览量:0
社区版块
存档分类
最新评论

倒排索引

 
阅读更多
倒排索引是文档检索系统中最常见的数据结构,被广泛的应用于搜索引擎。它是一种根据内容查找文档的方式。由于不是根据文档来找内容,而是根据进行了相反的操作,因此叫做倒排索引。

倒排索引的一个简单结构如下图所示:

 

单词文档列表

 

 

 

最常见的是使用词频作为权重,即单词在一个文档中出现的次数。如图所示,已知3个文档。



  


则他们的索引文件为


 

因此,当搜索条件为“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}

即关键字出现在0.txt1.txt中。

以上只是词频作为权重,当然实际应用中权重可能很复杂,这里仅仅以词频为权重进行编码。

结合MapReduce框架的执行流程,倒排索引的处理步骤设计如下:

 

 

InputFormat处理后:



  

 

map()方法处理后:(之所以把文本位置放到K,为了方便Mapper处理)



 

 

Mapper框架进行处理:(之所以把文本位置放到K,为了方便此处处理)



  

 

Combiner进行处理:



 

 

 

为了方便Reducer框架进行处理,Combiner的输出需要改变一下:



  

 

Reducer框架进行处理:



 

 

Reduce()方法进行处理



 
 

以上过程转化为代码,仅仅需要重写map(),combine(),reduce()方法即可。

需要注意的是,对于输入输出的处理,上一环节的输入格式应该和上一环节的输出格式一样。

  • 大小: 8.8 KB
  • 大小: 4.4 KB
  • 大小: 5.5 KB
  • 大小: 4.1 KB
  • 大小: 4.8 KB
  • 大小: 10.8 KB
  • 大小: 10.1 KB
  • 大小: 8 KB
  • 大小: 8.1 KB
  • 大小: 7.7 KB
  • 大小: 6.6 KB
0
1
分享到:
评论

相关推荐

    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