Lucene.NET内存使用无法限制:IndexWriterConfig参数失效问题
Lucene.NET IndexWriter内存占用过高无法释放的问题
我已在Apache Lucene.NET的GitHub仓库提交了相关Issue。当前使用的版本如下:
- Lucene.Net 4.8.0-beta00016
- Lucene.Net.Analysis.Common 4.8.0-beta00016
执行的代码如下:
using var analyzer = new KeywordAnalyzer(); using var directory = FSDirectory.Open(IndexPath); var config = new IndexWriterConfig(LuceneVersion, analyzer) { OpenMode = OpenMode.CREATE, // Use OpenMode.CREATE to overwrite, or OpenMode.APPEND to just open RAMPerThreadHardLimitMB = 100, RAMBufferSizeMB = 100, }; using var writer = new IndexWriter(directory, config); // Write index to disk writer.AddDocuments(productDocuments); writer.AddDocuments(productCategoryDocuments); writer.AddDocuments(productTypeDocuments); writer.AddDocuments(productLineDocuments); writer.Commit();
调用writer.AddDocuments()后内存占用大幅飙升,多次运行后内存占用可达3GB且无法释放。我已尝试设置RAMBufferSizeMB、RAMPerThreadHardLimitMB、MaxBufferedDocs参数,以及执行flush、Dispose()操作,但均无效果。
请问是否遗漏了文档中的配置,或有其他方法限制Lucene.NET IndexWriter的内存使用?
内容的提问来源于stack exchange,提问作者PeterOeClausen
相关产品推荐
相关产品推荐

