У меня есть модель, подобную нижеSolrnet: не удалось получить многозначное поле из Solr
public class Product
{
[SolrUniqueKey("id")]
public int ID { get; set; }
[SolrField("storage")]
public string Storage { get; set; }
[SolrField("components")]
public Components Components { get; set; }
}
public class Components : List<string>
{
public Components()
{}
public Components(string[] components)
{
AddRange(components);
}
}
В моей schema.xml я карта поля как:
<field name="id" type="string" indexed="true" stored="true" required="true" />
<field name="storage" type="string" indexed="true" stored="true" omitNorms="true"/>
<field name="components" type="text_ws" stored="true" multiValued="true" omitNorms="true"/>
Я добавил список из 5 продуктов для индекса Solr. Если я запрос со страницы администратора Solr для «*», я получаю этот ответ документ для одного из результатов:
<doc>
<arr name="components">
<str>blah1</str>
<str>blah2</str>
<str>blah3</str>
</arr>
<str name="id">0</str>
<str name="storage">foo</str>
</doc>
Однако, когда я запрашиваю Solr через Solrnet используя что-то вроде:
частных только для чтения ISolrReadOnlyOperations Solr var results = solr.Query (SolrQuery.All);
Я нахожу, что компоненты всегда равны нулю.
Любая помощь приветствуется.
Я вижу это поведение для любой производной коллекции.
У меня есть многозначное свойство с 'string []' type (array вместо производного типа List). – Matej
@Matej Это работает для меня со строкой [], однако я не думаю, что могу использовать массив здесь. У производного списка есть причины для его существования. –