索引过程-merge index
是的,这部分没有使用job,这点我也想到了:)
?
功能:
将由之前多个reduces index后(严格来说是dedup后)进行索引 合并 ;
将dedup后的deleted flags index进行清除;
?
也许会问,为什么要合并 呢?对了,对于构建一个分布式搜索系统来说这一步是不需要的,严格来说是"no"的,因为这步是作用一个intract net crawler来作为最后一步处理的。
?
过程:
将hdfs/local上的多份索引添加 到inexwriter中;
调用lcuene内置的merger;
将生成的索引 写入local tmp下,再move 到hdfs(如果使用hdfs)
?
其中第一步不会将hfds上的所有文件download到本地,lucene读hdfs文件的方式如同读本地一样,只要提供一个连续的数据流即可。之前看到有人说hfds文件不可以并行读取?其实觉得这是不太必要的,因为默认都是64m/block,再者它本身也提供也定位查询功能,可以把remote上的files作为本地files来考虑即可。