在每次调用中重复使用或创建Analyzer、IndexSearcher、IndexWriter更好吗
本文关键字:Analyzer 创建 IndexSearcher IndexWriter 更好 调用 | 更新日期: 2023-09-27 18:01:13
我是Lucene.net的新手,正在尝试从这里调整搜索代码,这实际上在每个方法中创建了一个新的Analyzer
、IndexSearcher
和IndexWriter
对象,并且只有FSDirectory对象被重用。
问题:这里有推荐的重用这些对象的最佳实践吗?
Lucene的先前结果。网络优化是从多年前,和个人经验的朗讯。Net库已经发生了变化:如果不更改代码,下载示例并使用3.0.3进行编译是不可行的。
来自官方wiki的最佳实践如何?
在我们的项目中,我们重用Analyzer
,并将其与预定义的Version
一起注入IndexWriter
和IndexReader
。建议Analyzer
在索引和搜索时相同,因此至少该模式适用于它
由于后两个是用于实际Lucene索引访问的包装器,因此每次使用它们时都需要实例化索引流,并且重用它们几乎没有意义,因为它们会阻止并发调用(read
s和write
s(。
这个项目中有一些"最佳实践"和模式可以供您利用。