升级到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中先前。
- StandardAnalyzer - add
using Lucene.Net.Analysis.Standard
。 - QueryParser - add
using Lucene.Net.QueryParsers.Classic
。请注意,现在有很多其他类型的QueryParser可用。 - 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
语句。您只需将鼠标悬停在红色加下划线的类型上,然后单击小灯泡下拉菜单。
您的回答非常有帮助。谢谢。 – Ben