1、调整MaxBufferedDocs和MergeFactor,经过调试,发现MaxBufferedDocs=1000,MergeFactor=100时性能较好。

Lucene性能调整indexModifier = new IndexModifier(@"c:\indexpath",new StandardAnalyzer(),true);
Lucene性能调整indexModifier.SetMaxBufferedDocs(
1000);
Lucene性能调整indexModifier.SetMergeFactor(
100);

2、使用IndexModifier类,线程安全的。
Lucene性能调整indexModifier.AddDocument(document);

3、使用线程池ThreadPool,有效利用硬件的特性。经调试,5个线程的效果是相当好的。
Lucene性能调整ThreadPool.SetMaxThreads(55);
    ThreadPool.QueueUserWorkItem(WaitCallBack, state);

4、最后别忘记了优化
Lucene性能调整indexModifier.Flush();
Lucene性能调整indexModifier.Optimize();
Lucene性能调整

5、使用RAMDirectory并不能带来多少性能改善,MaxBufferedDocs同样也是设置缓存

相关文章: