【问题标题】:Solr highlights errorSolr 突出显示错误
【发布时间】:2013-12-18 14:17:30
【问题描述】:

我正在使用带有 Jetty 的 solr 4.6 并作为客户端最新的 solrnet build (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

【问题讨论】:

    标签: solr solrnet


    【解决方案1】:

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

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

    SolrNet Mapping documentation所示。

    【讨论】:

    • 由于 content 字段没有被复制到任何地方,我不知道为什么它与 multiValue 属性映射?我已经在 schema.xml 中更改了它,只是删除了 multiValued,它很酷。但是,我也同意你的回答。我还不清楚一件事:我的查询中有六个亮点。每个亮点的键值都在那里,但值为空。而价值实际上应该是文本的sn-p?
    • 可能是您指定的字段中没有任何匹配项用于突出显示。由于您正在查询文本字段(这是来自各种其他字段的 copyField 目标),其他字段可能会驱动查询并且不会在突出显示中显示。您可以将“*”指定为突出显示字段,以查看是否有任何结果。还要检查突出显示参数wiki.apache.org/solr/HighlightingParameters,因为有很多选项需要考虑。此外,我建议最初直接针对 Solr 进行测试,以确保您获得预期的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多