论坛首页 Java企业应用论坛

如何优化Lucene

浏览 2247 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-08-18  

1·关闭复合文件格式

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

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

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

4·重用DocumentField实例

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

5·设置autoCommitfalse

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

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

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

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

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

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

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

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

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics