Domanda
Ho una semplice query a un'istanza Solr utilizzando SolrNet, ma per qualche ragione, il punteggio è sempre 0.
Ho verificato:
-
avere un campo [SolrField ( "Score")] public double Score {get; impostato; } Nella mia classe di mappatura
-
hanno verificato che i campi da ricercare sono stringa al posto del testo.
Che altro potrebbe essere sbagliato? Si prega di aiuto
Aggiornamento:
var results = solr.Query(q,
new QueryOptions
{
OrderBy = new[] { new SolrNet.SortOrder("DateSubmitted", Order.ASC) },
Fields = new[] { "score" }
}
);
Soluzione
Assicurarsi che il punteggio è nella lista dei campi quando si esegue la richiesta (il parametro fl), perché il punteggio non viene restituito per impostazione predefinita.
Altri suggerimenti
Proprio come Pascal ha notato, il punteggio non viene restituita per impostazione predefinita, in modo da avere a che fare fl = *, segnare per ottenere tutto e il punteggio . In SolrNet questo si traduce in Fields = new[] {"*","score"}
.
Anche la mappatura è case sensitive quindi ti consigliamo [SolrField("score")]
invece di [SolrField("Score")]