2010年4月9日星期五

Nutch索引合并

     近日,用到Nutch的索引合并,把几个单独建好的索引合到一起来。通过命令行就可以解决这个问题。
    比如,你有两个索引文件,mydir1和mydir2,他们分别由Nutch单独构建,它们的目录结构是:
   crawldb
   index
   indexes
   linkdb
   segments
   现在需要对这两个索引文件mydir1和mydir2进行合并为一个mydir,可使用命令:
   1.合并linkdb
  
bin/nutch mergelinkdb mydir/linkdb mydir1/linkdb/ mydir2/linkdb/

  2.合并crawldbs
  
bin/nutch mergedb mydir/crawldb mydir1/crawldb/ mydir2/crawldb/

  3.合并segments
  
bin/nutch mergesegs mydir/segments mydir1/segments/* mydir2/segments/*

   在数GB的数据量的情况下不能成功,我使用了5台机器,合并100G的数据,到百分之0.04时几乎不动了,我认为Nutch不大赞同大数量的 segments合并,segments在检索中起到的作用仅仅是快照作用,因此可以考虑,不要合并segments,自己搞定大数据的快照服务就行。
   4.Invertlinks
  
bin/nutch invertlinks mergeaall/linkdb/ mergeaall/segments/*

   5.create nutch index
  
bin/nutch index mydir/indexes mydir/linkdb/ mydir/crawldb/ mydir/segments/*

   6.通过直接meger index 可以快速把索引合并的问题搞定,综合3解决Nutch的索引合并。
   merge index
  
nutch merge mydir/index mydir1/indexes mydir2/indexes

没有评论: