Список объектов публикации данных индекса Solrnet

#c# #solr #solrnet

#c# #solr #solrnet

Вопрос:

Я использую solrnet для индексации данных, как показано ниже :

         var solrFacility = new SolrNetFacility("http://mysolr:8983/solr/testcollection");
        var container = new WindsorContainer();
        container.AddFacility("solr", solrFacility);
        var solr = container.Resolve<ISolrOperations<Dictionary<string, object>>>();
        solr.Add(new Dictionary<string, object> {
            {"id", "http://google.com/link1"},
            {"title", "test.pdf"},
            {"content", "abcdefghijk"},
            {"author", "Ziv Hsu"},
            {"editor", "Ziv Hsu"},
        });
        solr.Commit();
  

Это работа;

но если у меня есть список объектов, который нужно индексировать, не работает, он получит код 400, как показано ниже:

 public class LSchemaField
{
    public List<SchemaField> SchemaFieldList = new List<SchemaField>();
}
public class SchemaField
{
    public virtual string id { get; set; }
    .....
}

        LSchemaField SchemaFieldList = new LSchemaField();

        SchemaField SchemaFields = new SchemaField();
        SchemaFields.id = ....;         
        SchemaFieldList.SchemaFieldList.Add(SchemaFields);

        SchemaField SchemaFields2 = new SchemaField();
        SchemaFields2.id =....;
        SchemaFieldList.SchemaFieldList.Add(SchemaFields2);

        var solrFacility = new  SolrNetFacility("http://mysolr:8983/solr/testcollection");
        var container = new WindsorContainer();
        container.AddFacility("solr", solrFacility);
        var solr = ObjectFactory.GetInstance<ISolrOperations<LSchemaField>>();enter code here
        solr.Add(SchemaFieldList );
        solr.Commit();
  

Может ли он добавить список объектов?

Ответ №1:

В классе SchemaField вам необходимо установить атрибут SchemaField для каждого свойства, которое вы хотите добавить в solr. это сопоставит свойства с файлами solr. https://github.com/mausch/SolrNet/blob/master/Documentation/Mapping.md

Комментарии:

1. Привет, Пракаш Бхатт, но мой solr использует schema.xml ей же надо сопоставить Schemafield?