Lucene索引性能调整测试结果

    技术2022-05-11  59

    <script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 索引文档数:10000序号Merge factorMin merge docsMax merge docs第一次的时间ms2次的时间ms3次的时间ms平均时间msMin merge docs取相同值,Merge factor逐渐增大11010214748364744094443134439144266210010214748364738922395793943739312.66667310001021474836473985939969404694009941010021474836476922717170317041.3333336100100214748364762816406651664018100010021474836476063617261876140.6666675101000214748364734543563353135167100100021474836473313336032503307.66666791000100021474836473516335932343369.666667Merge factor取相同值,Min merge docs逐渐增大1101021474836474409444313443914426641010021474836476922717170317041.333333510100021474836473454356335313516210010214748364738922395793943739312.666676100100214748364762816406651664017100100021474836473313336032503307.66666731000102147483647398593996940469400998100010021474836476063617261876140.66666791000100021474836473516335932343369.666667发生异常1在使用RAMDirectory时,Merge factor取值过大发生IOException;在使用FSDirectory时,Merge factor的值不超过操作系统的限制就可,我测试时将Merge factor设为100000都没有问题2Min merge docs 取值过大发生java.lang.OutOfMemoryError  从上面的测试结果我们可以得出以下结论: 1.Merge factor 的值只控制Directory(注意为RAMDirectory时,合并在内存中发生)中Segment的合并,增加它的值可以提高索引性能,但效果不明显(至少上面测试显示的结果是这样)。这一点与Lucene In action一书叙述不一样。 2.Min merge docs的值控制索引时占用的内存,增大它的值可以显著提高索引性能。(Directory为RAMDirectory时其实是在内存中copy) 3.Max merge docs上面没有测试的原因是,它的值一般都取Integer的最大值。取值太小影响搜索效果 。

    最新回复(0)