升级到Lucene时出现代码问题.net 4.8.0-beta0004

问题描述:

我在C sharp应用程序中将Lucene.net从3.0.3升级到4.8.0-beta0004,并且我还安装了Lucene.net.analysis的最新版本.common和Lucene.net.queries。升级到Lucene时出现代码问题.net 4.8.0-beta0004

在我的几行代码被引发错误:

错误1 :) 分析器standAnalyzer =新StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);

错误是:无法找到类型或命名空间名称“StandardAnalyzer”。

错误2) Lucene.Net.QueryParsers.QueryParser parser = new Lucene.Net.QueryParsers.QueryParser(Lucene.Net.Util.Version.LUCENE_30,“Content”,standAnalyzer);

的错误是:类型或命名空间名称 “QueryParsers” 不存在于命名空间 'Lucene.Net'

错误3) Lucene.Net.Search.Searcher SCHR =新Lucene.Net存在。 Search.IndexSearcher(Lucene.Net.Index.IndexReader.Open(directory,true));

的错误是:类型或命名空间名称“搜索者”并不在命名空间存在“Lucene.Net.Search”

我用我的代码如下namaspace:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using Lucene.Net.Analysis; 
using Lucene.Net.Index; 
using Lucene.Net.Search; 
using Lucene.Net.Search.Spans; 

可以请帮忙吗?谢谢

Lucene的项目结构从3.x大大改变到4.x并且大小增加了10倍以上。结果,许多类不再与它们在同一个Namespace中先前。

  1. StandardAnalyzer - add using Lucene.Net.Analysis.Standard
  2. QueryParser - add using Lucene.Net.QueryParsers.Classic。请注意,现在有很多其他类型的QueryParser可用。
  3. IndexSearcher - 不再有抽象Searcher基类。解决这个问题的最简单的方法是将行更改为:var schr = new Lucene.Net.Search.IndexSearcher(Lucene.Net.Index.IndexReader.Open(directory, true));

对于未来的参考,您可以查看Lucene 4.8.0 API doucmentation (in Java)怎么看项目结构发生了变化。 Lucene.Net非常紧密地遵循这个结构。

另外,使用Visual Studio 2015或更高版本,还有一个很好的功能,可以根据类名自动添加using语句。您只需将鼠标悬停在红色加下划线的类型上,然后单击小灯泡下拉菜单。

enter image description here

+0

您的回答非常有帮助。谢谢。 – Ben