lucene索引合并

最近公司的项目用到lucene,开始的时候还是好好的,不过后来索引文件超过1G后就发现添加索引超慢。在google找了几篇文件,修改了lucene的参数也不见快什么。最后还是采用先建RAM,然后达到一定数量就合并到原来的索引文件。

合并的时候发现了一个问题原来的索引文件越大合并时间越长,而且不管你合并上去的索引数量多少,合并的时候并不会减少多少。

private static void mergeIndex(String to, RAMDirectory[] ramDirs, boolean createIndex) {           IndexWriter indexWriter = null;          /*createIndex = true;   indexWriteCount = 0;*/         try {               System.out.println("正在合并索引文件 3!/t "+createIndex);               indexWriter = new IndexWriter(to, new StandardAnalyzer(), createIndex);               indexWriter.setMergeFactor(100000);               indexWriter.setMaxFieldLength(Integer.MAX_VALUE);               indexWriter.setMaxBufferedDocs(Integer.MAX_VALUE);               indexWriter.setMaxMergeDocs(Integer.MAX_VALUE);               long startTime = System.currentTimeMillis();             indexWriter.addIndexes(ramDirs);              System.out.println("add to old 3!/t "+ (System.currentTimeMillis() - startTime) );             indexWriter.optimize();             System.out.println("optimize index 3!/t "+ (System.currentTimeMillis() - startTime) );             indexWriter.close();               System.out.println("已完成合并 3!/t ");           } catch (Exception e) {               System.out.println("合并索引出错 3!");               log.error(e.toString(), e);         } finally {               try {                   if (indexWriter != null)                       indexWriter.close();               } catch (Exception e) {                log.error(e.toString(), e);             }          }     }

留个底先,以后再优化参数,看看对增量索引能优化多少。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值