本文主要是介绍Lucene随笔-记录一下自动flush的触发条件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Luncene 6.5.1
在lucene中flush存在两种flush:主动flush与自动flush。那么在哪些情况下会触发自动flush呢?
MaxBufferedDocs
MaxBufferedDocs描述了索引信息被写入到磁盘前暂时缓存在内存中允许的文档最大数量,也就是每个DWPT缓存的最大文档数量,当一个DWPT中的文档数量超过这个值时会触发自动flush,该参数在建立IndexWriter后是可变的。
RAMBufferSizeMB
如果所有DWPT中的DocumentIndexData的索引内存占用量超过RAMBufferSizeMB,那么就会触发自动flush,将DWPT中的索引信息生成为一个段。这个参数同样是可以配置的,默认16MB。
RAMPerThreadHardLimitMB
如果每一个DWPT中的所有DocumentIndexData的索引内存占用量超过RAMPerThreadHardLimitMB,那么就会触发自动flush,将DWPT中的索引信息生成为一个段。该参数在iw建立后是不可以配置的。
总结
MaxBufferedDocs与RAMPerThreadHardLimitMB都是针对单个DWPT的flush,而RAMBufferSizeMB则是针对所有的DWPT。
这篇关于Lucene随笔-记录一下自动flush的触发条件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!