博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop下进行反向索引(Inverted Index)操作
阅读量:5754 次
发布时间:2019-06-18

本文共 1016 字,大约阅读时间需要 3 分钟。

0.参考资料:

代码参考1:http://www.pudn.com/downloads212/sourcecode/unix_linux/detail999273.html

理论参考2:http://zhangyu8374.javaeye.com/blog/86307,http://nything.javaeye.com/blog/411787

1.分析

假如有file0,file1,file2三个文件,这些文件中都保存了一些文本内容,比如在file0中只有一个句子,内容为"we are happy"。一般的索引都是记录在这个文件中没有一个单词的索引号。比如file0的索引可以是(we,0),(are,1),(happy,2)。这样的键值对中key是单词,value是这个单词在这个文件中的位置。但是,反向索引刚好相反,对应于多个文件,我们要求出某一个单词在所有这些文件中出现的位置。我们可以按如下操作进行实验:

在本地创建文件夹IndexTest并在里面创建3个文件,每个文件中的内容如下。

    * T0 = "it is what it is"

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

其中T0,T1,T2分别是文件名,后面为文件内容。将IndexTest文件夹上传到DFS中。然后运行反向索引程序。反向索引程序见代码示例。

最后输出结果为:

a     (T2, 3)banana     (T2, 4)is     (T2, 2) (T0, 2) (T0, 5) (T1, 2)it     (T1, 3) (T2, 1) (T0, 1) (T0, 4)what     (T0, 3) (T1, 1)

2.代码示例

InvertedIndex.java

View Code

TokenInputFormat.java

View Code

ValuePair.java

View Code

ps:2012-5-20

这里键值对valuepair的运用让我想到了前几天写的。在hashmap的实现过程中,也运用了键值对类Entry。 两者之间有共通之处,有空可以再改进。

 

本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2011/01/07/2297043.html,如需转载请自行联系原作者

你可能感兴趣的文章
CString和string头文件
查看>>
Android development tools line_endings hacking
查看>>
Spring bean的初始化及销毁
查看>>
jquery1.8 在IE8 下面报错:对象不支持此属性或方法 return b.getAttribute("id")===a
查看>>
Jquery 扩展方法
查看>>
.Net安装SQLite
查看>>
数据结构中的各种排序方法-JS实现
查看>>
Apache 的 httpd.conf 详解
查看>>
评黑书《算法艺术与信息学竞赛》
查看>>
myeclipse9.0安装svn
查看>>
Google 亚马逊水域和波兰街景上线
查看>>
validationGroup和Page_ClientValidate()
查看>>
jotm的xml
查看>>
Android应用开发提高系列(6)——Activity生命周期
查看>>
28个非常酷的登录和注册表单设计创意
查看>>
学习:重写hashCode()方法的必要性
查看>>
设置和读取Cookie
查看>>
robots
查看>>
Linux线程同步-条件变量
查看>>
JS无间隙滚动向左、向右、向上、向下兼容IE,firefox
查看>>