共计 1454 个字符,预计需要花费 4 分钟才能阅读完成。
现如今越来越多的人使用 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