首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Solr高亮显示错误

Solr高亮显示错误
EN

Stack Overflow用户
提问于 2013-12-18 14:17:30
回答 1查看 281关注 0票数 0

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

代码语言:javascript
运行
复制
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中,代码为:

代码语言:javascript
运行
复制
using (FileStream fileStream = File.OpenRead(filePath))
            {
                var response =
                    Solr.Extract(
                        new ExtractParameters(fileStream, txtId.Text)
                        {                            
                            ExtractFormat = ExtractFormat.Text,
                            ExtractOnly = false,

                        });            

                            }

            Solr.Commit();

我的问题是我不能把重点放在工作上。我的高亮代码:

代码语言:javascript
运行
复制
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的属性’内容‘”}

这里有什么问题吗?我跟踪了此链接

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-18 18:32:28

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

代码语言:javascript
运行
复制
 [SolrField("content")]
 public ICollection<string> Content { get; set; } 

SolrNet映射文档所示。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20660569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档