文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>lucene.net优化总结

lucene.net优化总结

时间:2010-09-29  来源:qqhe325

1.使用单例模式IndexReader,IndexWriter

2.当删除和添加多个Document对象时,最好进行批量处理。这样做的速度总是比交替的删除和添加操作的速度快得多

3.排序对搜索速度影响还是很大的,尽可能不要使用多个排序条件。
建议:采用默认的积分排序,设计良好的加权机制

4.过滤器采取的是对搜索结果的再处理方式,会使程序的性能显著下降,一般推荐使用BooleanQuery组合更多的搜索条件来达成效果。

5.将索引库载入内存,以提高搜索速度。

6.优化索引很简单,一个writer.Optimize()搞定,优化过程会降低索引的效率,优化结果提高搜索性能。不要时时Optimize(),优化一次就够了。
批量向 FSDirectory 增加索引时,增大合并因子(mergeFactor )和最小文档合并数(minMergeDocs)有助于提高性能,减少索引时间。

7.正确使用Field的存储和索引属性组合

8.通过RAMDirectory缓写提高性能<br>我们可以先把索引写入RAMDirectory,达到一定数量时再批量写进FSDirectory,减少磁盘IO次数

9.选择较好的分析器,这个优化主要是对磁盘空间的优化,可以将索引文件减小将近一半,相同测试数据下由600M减少到380M。但是对时间并没有什么帮助,甚至会需要更长时间,因为较好的分析器需要匹配词库,会消耗更多cpu,测试数据用StandardAnalyzer耗时133分钟;用MMAnalyzer耗时150分钟。

10.尽量降低时间精度,将精度由秒换成天带来的性能提高甚至比使用cache还好,最好不使用filter。

在不能降低时间精度的情况下,使用cache能带了10倍左右的性能提高。

 

 

 

参考文献:

http://www.madcn.net/?p=639  狂人居

http://blog.csdn.net/zfrong/archive/2009/01/16/3794999.aspx 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载