0
我使用Solr 4.6与Jetty和作为客户端最新的solrnet版本(1672)。我没有对solrconfig.xml或schema.xml做任何更改,因为我需要的只是文档的内容和标识。我的班级:Solr重点错误
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();
我的问题是,我不能让亮点工作。我对highlightning代码:
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“}
这里有什么问题?我遵循this link
由于内容字段没有复制到任何地方,我不知道它为什么映射到multiValue属性?我已经在schema.xml中更改了这个,只是删除了multiValued并且很酷。但是,我也同意你的回答。有一件事现在还不清楚:我的查询中有6个亮点。每个突出显示的关键值都存在,但值为空。其实价值应该是文本的片段? – FrenkyB
可能是您的指定字段中没有任何匹配的突出显示。由于您正在查询文本字段(这是来自各种其他字段的copyField目标),因此其他字段可能会驱动查询并且不会在高亮显示中显示。您可以指定“*”作为高亮区域,以查看是否获得任何结果。同时检查突出显示参数http://wiki.apache.org/solr/HighlightingParameters,因为有很多选项需要考虑。另外我会建议最初直接对Solr进行测试,以确保您获得预期的结果。 –