如何将SolrNet查询结果映射到类?

时间:2012-05-04 13:44:01

标签: .net solrnet

我正在尝试使用SolrNet客户端查询Solr。 我可以索引文档并使用Solr Web管理员搜索它们,但没有错误。 当我尝试使用相同的类进行查询时,我将文档编入索引,在每个字段中都会出现如下错误。

错误:

无法将值'System.Collections.ArrayList'转换为文档类型Search.WebService.Handler.Document

的属性'Title'

为什么Solr试图将一个arraylist映射到每个领域? 以下是我的设置的详细信息,架构基于示例架构。

我的架构:

<field name="ReferenceId" type="identifier" indexed="true" stored="true" required="true"/>
<field name="Title" type="text_general" indexed="true" stored="true"/>
<field name="Revision" type="identifier" indexed="true" stored="true"/>
<field name="Author" type="text_general" indexed="true" stored="true"/>
<field name="Filename" type="text_general" indexed="true" stored="true"/>

我的文档课程:

class Document
{
    [SolrField("ReferenceId")]
    public string ReferenceId { get; set; }

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

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

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

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

示例查询:

string queryString = String.Format("Title :\"{0}\"", titleSearchTerm);
SolrQuery query = new SolrQuery(queryString);
SolrQueryResults<Document> results = index.Query(query);

1 个答案:

答案 0 :(得分:0)

为每个字段添加了属性multiValued =“false”。

有关multiValued fields的更多详细信息,请参阅文档。