| <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> |
| 索引文档数: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 | ||||||
1.Merge factor 的值只控制Directory(注意为RAMDirectory时,合并在内存中发生)中Segment的合并,增加它的值可以提高索引性能,但效果不明显(至少上面测试显示的结果是这样)。这一点与Lucene In action一书叙述不一样。
2.Min merge docs的值控制索引时占用的内存,增大它的值可以显著提高索引性能。(Directory为RAMDirectory时其实是在内存中copy)
3.Max merge docs上面没有测试的原因是,它的值一般都取Integer的最大值。取值太小影响搜索效果。
测试表明,Lucene的Merge factor对索引性能提升有限,而Min merge docs的增大能显著提高索引效率,尤其是对于RAMDirectory。Max merge docs通常设置为Integer最大值以保障搜索质量。
3299

被折叠的 条评论
为什么被折叠?



