-->

SolrNet - Score always 0

2020-08-02 19:24发布

问题:

I have a simple query to a Solr instance using SolrNet, But for some reason, the score is always 0.

I have verified :

  • have a field [SolrField("Score")] public double Score { get; set; } in my mapping class

  • have checked that the fields being searched are string instead of text.

What else could be wrong? Please help

Update:

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

                                    }
                                  );

回答1:

Make sure that score is in the list of fields when you do the request (the fl parameter) because the score is not returned by default.



回答2:

Just like Pascal noted, the score is not returned by default, so you have to do fl=*,score to get everything and the score. In SolrNet this translates to Fields = new[] {"*","score"}.

Also mapping is case sensitive so you'll want [SolrField("score")] instead of [SolrField("Score")]



回答3:

In my case, I had to use the IndexField attribute instead of SolrField

[IndexField("score")]
public decimal Score {get; set;}


标签: solr solrnet