在每次调用中重用或创建Analyzer,IndexSearcher,IndexWriter是否更好?

时间:2013-02-27 00:21:45

标签: c# .net lucene lucene.net

我是Lucene.net的新手并且尝试调整search code from here,它基本上在每个方法中创建一个新的AnalyzerIndexSearcherIndexWriter对象,并且只有FSDirectory对象正在被重用。

问题:此处是否建议重复使用这些对象?

以前的Lucene.Net优化结果来自几年前,从个人经验来看,Lucene.Net库发生了变化:下载示例并使用3.0.3编译它们在不更改代码的情况下无效。

2 个答案:

答案 0 :(得分:3)

来自官方维基的BestPractices怎么样?

答案 1 :(得分:1)

在我们的项目中,我们重复使用Analyzer,并将预先定义的Version注入IndexWriterIndexReader。建议在索引和搜索时Analyzer是相同的,因此至少该模式适用于它。

因为最后两个是实际Lucene索引访问的包装器,所以每次使用它们时都需要实例化一个索引流,重用它们没有意义,因为它们会阻塞并发调用({{1 s和read s)。

this project中有一些“最佳做法”和模式可供您利用。