Lucene索引性能调整测试结果




从下面的测试结果我们可以得出以下结论:
1.Merge factor 的值只控制Directory(注意为RAMDirectory时,合并在内存中发生)中Segment的合并,增加它的值可以提高索引性能,但效果不明显(至少上面测试显示的结果是这样)。这一点与Lucene In action一书叙述不一样。
2.Min merge docs的值控制索引时占用的内存,增大它的值可以显著提高索引性能。(Directory为RAMDirectory时其实是在内存中copy)
3.Max merge docs上面没有测试的原因是,它的值一般都取Integer的最大值。取值太小影响搜索效果

索引文档数:10000
序号 Merge factor Min merge docs Max merge docs 第一次的时间 ms 第 2 次的时间 ms 第 3 次的时间 ms 平均时间 ms
Min merge docs取相同值,Merge factor逐渐增大
1 10 10 2147483647 44094 44313 44391 44266
2 100 10 2147483647 38922 39579 39437 39312.66667
3 1000 10 2147483647 39859 39969 40469 40099
4 10 100 2147483647 6922 7171 7031 7041.333333
6 100 100 2147483647 6281 6406 6516 6401
8 1000 100 2147483647 6063 6172 6187 6140.666667
5 10 1000 2147483647 3454 3563 3531 3516
7 100 1000 2147483647 3313 3360 3250 3307.666667
9 1000 1000 2147483647 3516 3359 3234 3369.666667
Merge factor取相同值,Min merge docs逐渐增大
1 10 10 2147483647 44094 44313 44391 44266
4 10 100 2147483647 6922 7171 7031 7041.333333
5 10 1000 2147483647 3454 3563 3531 3516
2 100 10 2147483647 38922 39579 39437 39312.66667
6 100 100 2147483647 6281 6406 6516 6401
7 100 1000 2147483647 3313 3360 3250 3307.666667
3 1000 10 2147483647 39859 39969 40469 40099
8 1000 100 2147483647 6063 6172 6187 6140.666667
9 1000 1000 2147483647 3516 3359 3234 3369.666667
发生异常
1 在使用RAMDirectory时,Merge factor取值过大发生IOException;
在使用FSDirectory时,Merge factor的值不超过操作系统的限制就可,我测试时将Merge factor设为100000都没有问题
2 Min merge docs 取值过大发生java.lang.OutOfMemoryError



 

你可能感兴趣的:(Lucene索引性能调整测试结果)