我使用SolrNet对Solr实例进行简单查询,但由于某种原因,得分始终为0.
我已经确认:
有一个字段[SolrField(“Score”)] 公共双重得分{得;组;在我的映射类
检查过搜索的字段是字符串而不是文字。
还有什么可能是错的?请帮忙
更新
var results = solr.Query(q,
new QueryOptions
{
OrderBy = new[] { new SolrNet.SortOrder("DateSubmitted", Order.ASC) },
Fields = new[] { "score" }
}
);
答案 0 :(得分:8)
就像Pascal所说,默认情况下不会返回分数,因此您必须执行fl=*,score to get everything and the score。在SolrNet中,这转换为Fields = new[] {"*","score"}
。
此外,映射区分大小写,因此您需要[SolrField("score")]
而不是[SolrField("Score")]
答案 1 :(得分:1)
确保在您执行请求时,分数位于字段列表中(fl参数),因为默认情况下不会返回分数。
答案 2 :(得分:0)
就我而言,我必须使用IndexField属性而不是SolrField
[IndexField("score")]
public decimal Score {get; set;}