2013-10-04 5 views
0

VS2012, .NET 4.5 및 SolrNet을 사용하고 있습니다. solrnet 매핑에 어려움을 겪고 있습니다. 나는 성공적으로 부두가있는 Apache Solr을 http://localhost:8983/solr에 시작했습니다. 내가 SOLR에 추가 할 내 클래스입니다 :Solrnet에서 매핑 작업을 수행 할 수 없습니다.

public class Register 
{ 
    [SolrUniqueKey("id")] 
    public string Id { get; set; } 

    [SolrField("body")] 
    public string Body { get; set; } 
} 

내가 성공적으로 SOLR에 연결,하지만 난 그것으로 내 문서를 넣을 수 없습니다 : 여기

Startup.Init<Register>(solrAddress); 
Solr = ServiceLocator.Current.GetInstance<ISolrOperations<Register>>(); 

var reg = new Register 
        { 
         Id = "SP2514N",      
         Body = @"Dosel je prosel" 
        };    

       Solr.Add(reg); 
       Solr.Commit(); 

나는, 오류 메시지가 나타납니다 '몸 '은 (는) 알 수없는 필드입니다. 또한 다음과 같이 MappingManager를 사용했습니다.

var mgr = new MappingManager(); 
      var property = typeof(Register).GetProperty("Id"); 
      mgr.Add(property, "id"); 
      mgr.SetUniqueKey(property); 
      mgr.Add(typeof(Register).GetProperty("Body"), "body"); 

하지만 내 필드가 매핑되지 않았습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? solr에 대한 매핑이 코드를 통해 이루어지기로되어 있지 않습니까? 특수 XML 파일이 필요합니까?

답변

2

스키마에 body 필드가 정의되어 있는지 확인해야합니다. Solr과 함께 제공되는 기본 스키마를 방금 사용하는 경우에는 body 필드가 포함되지 않습니다. description과 같은 schema.xml 파일에있는 기존 유사한 항목을 복사하여 이동할 수 있습니다. 다음을 참조하십시오 SOLR 스키마를 구성하는 방법에 대한 자세한 참고로

는 :

+1

나는의 schema.xml에 필드를 추가했고 그것을 작동합니다! 나중에 'waitFlush'매개 변수가없는 문제가 있었지만 운 좋게도 잘 알려진 문제였습니다. https://groups.google.com/forum/#!topic/solrnet/gs1GrqSF9Zs – FrenkyB

관련 문제