1

我使用 SolrNet 对 Solr 实例进行了简单查询,但由于某种原因,分数始终为 0。

我已经验证:

  • 有一个字段 [SolrField("Score")] public double Score { get; 放; } 在我的映射类

  • 已检查正在搜索的字段是字符串而不是文本。

还有什么可能是错的?请帮忙

更新:

  var results = solr.Query(q,
                                   new QueryOptions
                                    {
                                        OrderBy = new[] { new SolrNet.SortOrder("DateSubmitted", Order.ASC) },
                                        Fields = new[] { "score" }

                                    }
                                  );
4

3 回答 3

8

就像 Pascal 指出的那样,默认情况下不返回分数,因此您必须执行fl=*,score 才能获取所有内容和分数。在 SolrNet 中,这转换为Fields = new[] {"*","score"}.

映射也区分大小写,因此您需要[SolrField("score")]而不是[SolrField("Score")]

于 2010-09-14T19:13:31.847 回答
1

确保在执行请求时分数在字段列表中(fl 参数),因为默认情况下不返回分数。

于 2010-09-14T14:02:06.987 回答
0

就我而言,我不得不使用 IndexField 属性而不是 SolrField

[IndexField("score")]
public decimal Score {get; set;}
于 2020-03-02T21:07:50.897 回答