我是Lucene.net的新手并且尝试调整search code from here,它基本上在每个方法中创建一个新的Analyzer
,IndexSearcher
和IndexWriter
对象,并且只有FSDirectory对象正在被重用。
问题:此处是否建议重复使用这些对象?
以前的Lucene.Net优化结果来自几年前,从个人经验来看,Lucene.Net库发生了变化:下载示例并使用3.0.3编译它们在不更改代码的情况下无效。
答案 0 :(得分:3)
来自官方维基的BestPractices怎么样?
答案 1 :(得分:1)
在我们的项目中,我们重复使用Analyzer
,并将预先定义的Version
注入IndexWriter
和IndexReader
。建议在索引和搜索时Analyzer
是相同的,因此至少该模式适用于它。
因为最后两个是实际Lucene索引访问的包装器,所以每次使用它们时都需要实例化一个索引流,重用它们没有意义,因为它们会阻塞并发调用({{1 s和read
s)。
this project中有一些“最佳做法”和模式可供您利用。