你好,游客 登录 注册 搜索
背景:
阅读新闻

Lucene的几点索引建设优化

[日期:2014-06-08] 来源:Linux社区  作者:andywuchuanlong [字体: ]

现如今越来越多的人使用Lucene来开发自己的搜索引擎,在数据量不大的情况下,我们一般不会太关注创建索引的效率,但是,当数据达到一定的数量时候,我们就必须要考虑如何的去提高创建索引的性能,以减少创建索引的时间。

1、合并因子

setMergeFactory是控制segment合并频率的,其决定了一个索引块中包含多少个文档并且当硬盘上的索引文件达到多少时,将他们合并成一个较大的索引块,mergeFactory值默认为10,但是其值越大,生成索引的速度也就越块。所以可以通过setMergeFactory设置来提高索引创建的效率。

2、最大缓存文档数

setMaxBufferedDocs可以控制写入一个新的segment前内存中保存的document的数目,默认为10,值越大,索引速度创建越快

3、最大合并文档数

setMaxMegerDocs可以控制一个segment中可以保存的最大document数目,值越小就有利于索引的追加速度,默认值为integer.max_value。在创建大数据量的索引时,索引创建的速度瓶颈在于大量的磁盘操作,如果内存足够大,应当尽量使用内存,可以通过setMaxBufferedDocs调整,增大Lucene使用内存的次数。并且如果内存足够大的话,我们可以完全避免使用硬盘。Lucene允许我们先把索引写入到RAMDirectory,达到一定数据量的时候再批量写进FSDirectory,减少磁盘的操作。

4、optimize方法优化索引

删除一个documend时候,Lucene会生成一个*.del文件,该文件中记录了删除的文档,但是从未从物理上删除这些文档,此时被删除的文档是受保护的,当再次访问这些受保护的文档时候,Lucene会报attempt toaccess a deleted document异常,如果需要一次删除多个文档,可以用indexWriter的optimize方法来优化索引,这样 就可以继续删除另外的文档。

Lucene 的详细介绍请点这里
Lucene 的下载地址请点这里

基于Lucene多索引进行索引和搜索 http://www.linuxidc.com/Linux/2012-05/59757.htm

Lucene 实战(第2版) 中文版 配套源代码 http://www.linuxidc.com/Linux/2013-10/91055.htm

Lucene 实战(第2版) PDF高清中文版 http://www.linuxidc.com/Linux/2013-10/91052.htm

使用Lucene-Spatial实现集成地理位置的全文检索 http://www.linuxidc.com/Linux/2012-02/53117.htm

Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a9 http://www.linuxidc.com/Linux/2012-02/53113.htm

Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a8 http://www.linuxidc.com/Linux/2012-02/53111.htm

Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a7 http://www.linuxidc.com/Linux/2012-02/53110.htm

Project 2-1: 配置Lucene, 建立WEB查询系统[Ubuntu 10.10] http://www.linuxidc.com/Linux/2010-11/30103.htm

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-06/102856.htm

linux
相关资讯       Lucene  Lucene索引  Lucene优化 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款