lucene优化

来源:互联网 发布:纽约大学gpa算法 编辑:程序博客网 时间:2024/04/30 16:32

1·关闭复合文件格式

       调用setUseCompoundFile(false)可以关闭复合文件选项。生成复合文件将消耗更多的时间

2·优化索引其实就是将多个索引文件合并成单个文件的过程,为了减少索引文件的数量级,能在搜索时减少读取索引文件的时间进行的操作。

3·优化索引的最佳时机是在索引过程结束后,当确认在此一段时间不会对索引文件进行更改的时候,在索引过程中优化索引只会是优化操作消耗更过的时间

4·重用Document和Field实例

       在Lucene2.3中,新增了一个方法setValue的方法,可以运行你改变字段的值。这样的好处是你可以在整个索引的过程中复用一个Field实例,这将极大的减少GC的负担。

5·设置autoCommit为false

       在Lucene2.3中对存储的字段和Term向量的文档进行了大量的优化,以节省索引合并的时间,可以单一的把IndexWriter实例的autoCommit设置为false,但是这样做会带来一个负面的影响:导致searcher在IndexWriter关闭之前不会看到任何索引的更新

在你真的需要之前不要随意的优化optimize索引(只有在需要更快的搜索速度的时候)

7·使用一个更快的分析器

8·关闭所有你实际上没有使用的功能

       如果你存储了字段,但是在查询时根本没有用到它们,那么别存储它们。同样的Term向量也是如此。如果你索引很多的字段,关闭这些字段不必要的特性将对你索引速度提升很多。

9·加大mergeFactor合并因子,但不是越大就越好

       大的合并因子将延迟segment的合并时间,这样做可以提高索引的速度,合并因子是索引很耗时的一个部分,但是这样做:降低了你的搜索速度。所以说两者是很矛盾的。

10·如果要索引很小的文本字段,如果没有特别的需要,建议将这些小文本的字段合并为一个大的Contents字段。然后再索引。