您的位置:首页 > 其它

lucene-调整索引性能

2009-12-25 22:24 169 查看
1、当新的Document对象增加到Lucene索引里时,它们最初将被缓存在内存中,而不是立刻写入磁盘中

2、IndexWriter提供了几个变量,用于调节缓存的大小和磁盘写入的频率。

3、IndexWriter的mergeFactor参数:

1)在将Document对象写入磁盘之前,控制在内存中存储Document对象的数量以及合并多个索引段的频率。在将它们做为单个段写入磁盘之前,Lucene在内存中默认存储10个Document对象。

2)默认10意味着磁盘上的段数达到10的乘方时,Lucene会将这些段合并为一个段。如每当有10个Document对象增加到索引中时,Lucene会在磁盘上创建一个新的段,当增加第10个大小为10个文档对象的段时,所有的这10个段会合并为大小为100的一个段。

4、IndexWriter的maxMergeDocs参数:

1)限制每个段的文档数量

2)当合并多个段时,Lucene要确保各个段中所包含的Document对象的个数不超过maxMergerDocs的大小。

5、IndexWriter的minMergeDocs参数:

1) 在Document对象被合并为一段之前,minMergerDocs的值控制着缓存的Document对象个数。

2)默认为10

3)能用更多的内存空间换取更快的索引

6、

1)从以上运行情况可以看出,操作系统为运行JVM提供更多内存时,增大mergeFactor和minMergeDocs的值可以提高索引过程速度,使用一个较大的mergeFactor值将会影响搜索性能

2)给JVM提供一个较大的内存堆可提高索引性能。进行这个操作通过java解释器中的-Xms和-Xmx参数共同完成

3)确保HotSpot、JIT的JVM选项已经激活,这会对程序运行产生积极的影响

7、如果出现打开文件过多的异常,可使用IndexWriter类的optimize()方法来对这个索引进行优化,如果仍然不能解决,则尝试通过增加机器所允许打开文件最大数,如果仍然不行,则把原来的索引转换成复合结构的索引
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: