【问题标题】:How to map a SolrNet Query result to a class?如何将 SolrNet 查询结果映射到类?
【发布时间】:2012-05-04 13:44:00
【问题描述】:

我正在尝试使用 SolrNet 客户端查询 Solr。 我可以索引文档并使用 Solr 网络管理员搜索它们而不会出错。 当我尝试使用同一个类进行查询时,我用我索引的文档在每个字段上都收到如下错误。

错误:

无法将值“System.Collections.ArrayList”转换为文档类型 Search.WebService.Handler.Document 的属性“Title”

为什么 Solr 试图将一个数组列表映射到每个字段? 这是我的设置的详细信息,架构基于示例架构。

我的架构:

<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);

【问题讨论】:

标签: .net solrnet


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-16
    • 2021-08-13
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多