本文共 1016 字,大约阅读时间需要 3 分钟。
代码参考1:http://www.pudn.com/downloads212/sourcecode/unix_linux/detail999273.html
理论参考2:http://zhangyu8374.javaeye.com/blog/86307,http://nything.javaeye.com/blog/411787
假如有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)
这里键值对valuepair的运用让我想到了前几天写的。在hashmap的实现过程中,也运用了键值对类Entry。 两者之间有共通之处,有空可以再改进。
本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2011/01/07/2297043.html,如需转载请自行联系原作者