本文共 554 字,大约阅读时间需要 1 分钟。
1、调整MaxBufferedDocs和MergeFactor,经过调试,发现MaxBufferedDocs=1000,MergeFactor=100时性能较好。
indexModifier = new IndexModifier( @" c:/indexpath " , new StandardAnalyzer(), true );indexModifier.SetMaxBufferedDocs( 1000 );indexModifier.SetMergeFactor( 100 ); 2、使用IndexModifier类,线程安全的。
indexModifier.AddDocument(document); 3、使用线程池ThreadPool,有效利用硬件的特性。经调试,5个线程的效果是相当好的。
ThreadPool.SetMaxThreads( 5 , 5 ); ThreadPool.QueueUserWorkItem(WaitCallBack, state); 4、最后别忘记了优化
indexModifier.Flush();indexModifier.Optimize(); 5、使用RAMDirectory并不能带来多少性能改善,MaxBufferedDocs同样也是设置缓存