2013-10-04 2 views
0

Я использую VS2012, .NET 4.5 и 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"); 

Но, опять же, мое поле не было нанесено на карту. Что я делаю не так? Разве отображение не должно выполняться с помощью кода? Нужен ли мне специальный xml-файл?

ответ

2

Вам необходимо подтвердить, что у вас есть поле body, определенное в вашей схеме. Если вы используете схему по умолчанию, которая поставляется с Solr, она не включает поле body. Вы можете скопировать существующую аналогичную запись в файле schema.xml, например description, чтобы вы начали.

Для получения дополнительной справки по настройке схемы Solr, пожалуйста, обратитесь к следующему:

+1

Я добавил поле в schema.xml и это работает! Позже у меня возникла проблема с не существующим параметром waitFlush, но, к счастью, это была известная проблема: https://groups.google.com/forum/#!topic/solrnet/gs1GrqSF9Zs – FrenkyB

Смежные вопросы