我正在嘗試關注these instructions。 我還應該提到我使用NuGet package而不是CodePlex來源。SimpleLucene無法實現接口成員
我提出這些2個錯誤:
錯誤1
'LuceneTest.Models.ProductIndexDefinition' 不實現接口成員 'SimpleLucene.IIndexDefinition.GetIndex(LuceneTest.Models.Product)'。 'LuceneTest.Models.ProductIndexDefinition.GetIndex(LuceneTest.Models.Product)'不能實現'SimpleLucene.IIndexDefinition.GetIndex(LuceneTest.Models.Product)',因爲它沒有匹配的返回類型'Lucene.Net.Index.Term 」。錯誤2
'LuceneTest.Models.ProductIndexDefinition' 不實現接口成員 'SimpleLucene.IIndexDefinition.Convert(LuceneTest.Models.Product)'。 'LuceneTest.Models.ProductIndexDefinition.Convert(LuceneTest.Models.Product)'不能實現'SimpleLucene.IIndexDefinition.Convert(LuceneTest.Models.Product)',因爲它沒有匹配的返回類型'Lucene.Net.Documents.Document 」。
從這個代碼:
using System.Web;
using SimpleLucene;
using Lucene.Net.Documents;
using Lucene.Net.Index;
namespace LuceneTest.Models
{
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
}
public class ProductIndexDefinition : IIndexDefinition<Product>
{
public Document Convert(Product p)
{
var document = new Document();
document.Add(new Field("id", p.Id.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED));
document.Add(new Field("name", p.Name, Field.Store.YES, Field.Index.ANALYZED));
return document;
}
public Term GetIndex(Product p)
{
return new Term("id", p.Id.ToString());
}
}
}
當我在對象資源管理器看IIndexDefinition它看起來像這樣:
public interface IIndexDefinition<T>
where T : class
{
Lucene.Net.Documents.Document Convert(T entity);
Lucene.Net.Index.Term GetIndex(T entity);
}
我不明白這是怎麼回事。我的意思是錯誤是說這個類沒有實現接口,因爲返回類型不匹配,但我只是沒有看到我能在哪裏或如何修復它。
在我的超簡單4.0控制檯項目中出現同樣的問題。 框架中存在兩個依賴項。我認爲不同版本的文件和術語有衝突。但仍然不能解決。 'Lucene(≥2.9.2.2)'。 'Lucene.net(≥2.9.4.1)'。 – 2011-12-23 15:53:26