我正在尝试关注these instructions。 我还要提一下,我使用NuGet package而不是CodePlex来源。
我遇到了这两个错误:
错误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());
}
}
}
当我在object explorer中查看IIndexDefinition时,它看起来像这样:
public interface IIndexDefinition<T>
where T : class
{
Lucene.Net.Documents.Document Convert(T entity);
Lucene.Net.Index.Term GetIndex(T entity);
}
我不明白发生了什么。我的意思是错误是说该类没有实现接口,因为返回类型不匹配,但我只是没有看到我可以在何处或如何修复它。
答案 0 :(得分:0)
问题是Nuget包不是有效的包。下载simplelucene的最新来源。您可以看到使用2.9.4.2的测试。用这个dll替换你的2.9.4.1 lucene.net。