分布式搜索引擎 (Hadoop)

之前在学校做过一个文档搜索引擎的课设,使用倒排索引,以及cos,布尔等计算模型。

现在由于hadoop的流行,本文实现了基于hadoop的文档搜索引擎,仍然使用倒排索引。

A. Hadoop 安装

Hadoop安装在网上有很多,再次不赘述。

B.编译eclipse的hadoop插件

下载地址:

https://github.com/abhishekgoel137/hadoop-eclipse-plugins/tree/master/hadoop-eclipse-plugins

拷贝到eclipse的plugins目录。(新版本eclipse要拷贝到features目录),重启eclipse。

C.在eclipse下设置hadoop.

D.搜索引擎编程

我们分为两个部分,第一个部分是index,第二个部分是research。

每一个部分均包含mapper 和 reducer。

mapper(index):这个部分mapper会以字节偏移量决定key, value的话,会由yarn从所有slaves的blocks里面读取,这方面编程人员不需要考虑。

在value里即为文档中的内容,在这里我们使用extractor和filter对文档进行筛选(这里暂时称作sign)并最后保存到context的key中。文档的名字保存到context的value中。

reducer(index):这里的key和context是mapper中所设定的新的值。对相同的sign进行合并。

最后输出一个临时倒排索引的文档。

以下为research部分,这部分相对简单。

mapper(research):读取之前生成的倒排索引的文档,这里按行读取文档然后以重新整理。

比如倒排索引中有一行:dog,21,a.txt=>11$b.txt=>10那么在mapper中写入的key,value为:

a.txt,dog-21-11

b.txt,dog-21-10

reducer(research):对于每一对key-value,这里使用cos进行计算score然后写入context即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值