2017-07-08 90 views
0

我在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; 

可以請幫忙嗎?謝謝

回答

1

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

相關問題