these instructions을 따르려고합니다. CodePlex 소스와 대조적으로 NuGet package을 사용 중임을 언급해야합니다.SimpleLucene이 인터페이스 멤버를 구현할 수 없습니다.
나는이 두 오류가되게 해요 :
: 나는 개체 탐색기에서 IIndexDefinition 볼 때오류 1
'LuceneTest.Models.ProductIndexDefinition'인터페이스 멤버 'SimpleLucene.IIndexDefinition.GetIndex (LuceneTest.Models.Product를)'구현하지 않습니다. 일치하는 반환 형식이 'Lucene.Net.Index.Term'이 아니므로 'LuceneTest.Models.ProductIndexDefinition.GetIndex (LuceneTest.Models.Product)'는 'SimpleLucene.IIndexDefinition.GetIndex (LuceneTest.Models.Product)'를 구현할 수 없습니다. '.오류 2
'LuceneTest.Models.ProductIndexDefinition'인터페이스 멤버 'SimpleLucene.IIndexDefinition.Convert (LuceneTest.Models.Product를)'구현하지 않습니다. 일치하는 반환 형식이 'Lucene.Net.Documents.Document'가 아니기 때문에 'LuceneTest.Models.ProductIndexDefinition.Convert (LuceneTest.Models.Product)'는 'SimpleLucene.IIndexDefinition.Convert (LuceneTest.Models.Product)'를 구현할 수 없습니다. '. 이 코드에서
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());
}
}
}
는 다음과 같습니다
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)'. –