Solr突出显示错误

时间:2013-12-18 14:17:31

标签: solr solrnet

我正在使用solr 4.6和Jetty以及客户端最新的solrnet构建(1672)。我没有对solrconfig.xml或schema.xml做任何更改,因为我需要的只是文档的内容和id。我的班级是:

public class Register
{
    [SolrUniqueKey("id")]
    public string Id { get; set; }

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

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

我将文档插入到solr中,代码为:

using (FileStream fileStream = File.OpenRead(filePath))
            {
                var response =
                    Solr.Extract(
                        new ExtractParameters(fileStream, txtId.Text)
                        {                            
                            ExtractFormat = ExtractFormat.Text,
                            ExtractOnly = false,

                        });            

                            }

            Solr.Commit();

我的问题是我无法突出显示工作。我突出显示的代码:

QueryOptions options = 
new QueryOptions{Highlight = new HighlightingParameters{Fields = new[] {"id", "content", "text"}}};
                SolrQueryByField query = new SolrQueryByField("text", "nhibernate");
                var res = Solr.Query(query, options);

执行第三行时,我收到错误:

{“无法将值'System.Collections.ArrayList'转换为文档类型SolrTest.Register的属性'Content'”}

这里有什么问题?我关注了this link

1 个答案:

答案 0 :(得分:2)

您的问题是,在默认schema.xml文件中,字段content定义为multiValued=true。告诉Solr在单个文档中允许该字段的多个值,例如存储为数组。因此,您需要将Register类中的Content属性更改为以下内容:

 [SolrField("content")]
 public ICollection<string> Content { get; set; } 

SolrNet Mapping documentation

所示