前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Lucene的几点索引建设优化

Lucene的几点索引建设优化

作者头像
星哥玩云
发布2022-07-01 14:39:35
3250
发布2022-07-01 14:39:35
举报
文章被收录于专栏:开源部署

现如今越来越多的人使用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方法来优化索引,这样 就可以继续删除另外的文档。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档