我是一个 Lucene.net 新手,并试图从这里调整搜索代码,这基本上会在每个方法中创建一个新的Analyzer
,IndexSearcher
和IndexWriter
对象,并且只有 FSDirectory 对象被重用。
问题:这里有推荐的最佳实践来重用这些对象吗?
Lucene.Net 优化的先前结果是多年前的结果,根据个人经验,Lucene.Net 库已经改变:下载示例并使用 3.0.3 编译它们在不更改代码的情况下无法正常工作。
我是一个 Lucene.net 新手,并试图从这里调整搜索代码,这基本上会在每个方法中创建一个新的Analyzer
,IndexSearcher
和IndexWriter
对象,并且只有 FSDirectory 对象被重用。
问题:这里有推荐的最佳实践来重用这些对象吗?
Lucene.Net 优化的先前结果是多年前的结果,根据个人经验,Lucene.Net 库已经改变:下载示例并使用 3.0.3 编译它们在不更改代码的情况下无法正常工作。
来自官方 wiki 的BestPractices怎么样?
在我们的项目中,我们重用Analyzer
并将其注入预定义Version
的IndexWriter
和IndexReader
。建议Analyzer
索引和搜索时相同,因此至少该模式适用。
由于最后两个是实际 Lucene 索引访问的包装器,因此每次使用它们时都需要实例化一个索引流,并且重用它们几乎没有意义,因为它们会阻塞并发调用(read
s 和write
s)。
这个项目中有一些“最佳实践”和模式可供您利用。