SimpleLucene不能实现接口成员
本文关键字:成员 接口 实现 不能 SimpleLucene | 更新日期: 2023-09-27 18:18:03
我正在努力遵循这些指示。我还应该提到,我使用的是NuGet包,而不是CodePlex源代码。
我看到了这两个错误:
错误1"LuceneTest.Models。ProductIndexDefinition'没有实现接口成员'SimpleLucene.IIndexDefinition.GetIndex(LuceneTest.Models.Product)'。'LuceneTest.Models.ProductIndexDefinition.GetIndex(LuceneTest.Models.Product)'无法实现' simpllucenene . iindexdefinition . getindex (LuceneTest.Models.Product)',因为它没有匹配的返回类型'Lucene.Net.Index.Term'。
错误2"LuceneTest.Models。ProductIndexDefinition'没有实现接口成员' simpllucene . iindexdefinition . convert (LuceneTest.Models.Product)'。'LuceneTest.Models.ProductIndexDefinition.Convert(LuceneTest.Models.Product)'无法实现' simpllucenene . 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);
}
我不明白发生了什么事。我的意思是错误说类没有实现接口,因为返回类型不匹配,但我只是不知道在哪里或如何修复它。
问题是Nuget包不是有效的包。下载最新的simplelucene源代码。您可以看到使用2.9.4.2的测试。用这个dll替换你的2.9.4.1 lucene.net。