在IndexWriter中初始化Lucene.Net如下所示:
var analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer(version);
var indexWriterConfig = new Lucene.Net.Index.IndexWriterConfig(version, analyzer);
Index = new Lucene.Net.Index.IndexWriter(luceneDir, indexWriterConfig);也就是说,没有分析器就无法实例化IndexWriter。因此,我希望在.Dispose()上调用IndexWriter会释放它的子程序,包括分析器。然而,浏览代码,我没有看到这种情况发生-到目前为止。我错过了吗?
那么:在.Dispose()上调用IndexWriter是否会释放分析器,如果没有,原因何在?
发布于 2019-01-24 19:49:38
IndexWriter不处理分析器。
它不处理分析器,因为它不能确定您不会在其他地方使用分析器。它是通过构造函数获得的引用,它可以在不知情的情况下被其他IndexWriter实例使用。
这是关于所有权的;您创建了分析器并让作者使用它。因此,处理分析器是你的责任。
https://stackoverflow.com/questions/53341781
复制相似问题