陋室铭
永远也不要停下学习的脚步(大道至简至易)

posts - 2169,comments - 570,views - 413万

mergeFactor
是用来决定segment该如何被addDocument()方法进行合并的。
当mergeFactor取比较小的值时,索引时所使用的内存较少
而且搜素未优化的速度会比较快。因此,mergeFactor取值较大时(比如大于10),
适合于批量的索引建立,而当搜索未优化索引的速度会更快,但是索引建立的速度会比较慢。
当mergeFactor取较大的值时,建立索引的速度会比较快。因此,mergeFactor取值较大时(比如大于10)
适合于这些批量的索引建立,而当mergeFactor取较小的值时,适合于间歇性的向索引加入文档。
这个合并因子在Lucene的索引建立过程中起到很重要的作用:
(1)、将mergeFactor的因子设为10, 那么每向索引添加10个Document时,就会有一个新的segment在磁盘上建立起来。
(2)、当第10个这样的segment建立好后,它们会被合并成为一个具有100个Document的新segment。
(3)、接下来,每个100个Document又会创建一个新的segment,当第999个文档被加入索引时,
此时磁盘上应该已经有了9个segment,其中每个都有100个Document,而第901个到999个Document此时正在内存中,
还未被写入磁盘中。
(4)、倘若此时,再向索引中加入一个Document,那么,前面9个segment就会和这第10个
新创建的segment进行合并,成为一个具有1000个Documentde segment。过程依次类推。


//为了防止segment中文档数量会增长的快,所以用maxMergementDocs限制最大的存储在segment的文档数。
//minMergementDocs又叫做maxBufferedDocs指的是每次将索引被刷到磁盘的时候,内存的数量

 
posted on   宏宇  阅读(29)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2008-09-12 Session中丢失的问题解决
2007-09-12 三层架构的bussiness层没用?
2007-09-12 C# 文件操作(转)
2007-09-12 学习.net中I/O的心得---第一篇 初探I/O(转)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示