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);
}
我不明白发生了什么事。我的意思是错误说类没有实现接口,因为返回类型不匹配,但我只是不知道在哪里或如何修复它。

SimpleLucene不能实现接口成员

问题是Nuget包不是有效的包。下载最新的simplelucene源代码。您可以看到使用2.9.4.2的测试。用这个dll替换你的2.9.4.1 lucene.net。