如何提高lucene索引的速度

1·关闭复合文件格式

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

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

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

4·重用Document和Field实例

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

5·设置autoCommit为false

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

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

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值