2010-09-14 8 views
1

J'ai une simple requête à une instance Solr en utilisant SolrNet, mais pour une raison quelconque, le score est toujours 0.SolrNet - Score toujours 0

J'ai vérifié:

  • ont un champ [ SolrField ("Score")] public double Score {get; ensemble; } dans ma classe de mappage

  • ont vérifié que les champs recherchés sont une chaîne au lieu du texte.

Quoi d'autre pourrait être faux? S'il vous plaît aider

Mise à jour:

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

            } 
           ); 

Répondre

1

Assurez-vous que le score est dans la liste des champs lorsque vous faites la demande (le paramètre fl) parce que le score n'est pas retourné par défaut.

+0

Merci est thsi construire (voir ci-dessus) suffisante? J'ai essayé cela et je n'ai toujours pas de score. – Mikos

+0

Je vérifie d'abord directement avec la console Solr si je fais une requête avec le parametre fl pour marquer correctement les documents retournés. Ensuite, je vérifierais si le param est correctement envoyé à Solr avec un analyseur de requêtes http (tcpmon ou fiddler). –

+0

merci. va essayer vos suggestions. – Mikos

7

Tout comme Pascal l'a noté, le score n'est pas retourné par défaut, donc vous devez faire fl=*,score to get everything and the score. Dans SolrNet cela se traduit par Fields = new[] {"*","score"}.

également la cartographie est sensible à la casse de sorte que vous aurez envie [SolrField("score")] au lieu de [SolrField("Score")]

+0

en utilisant ** SolrNet ** comment pouvons-nous obtenir le 'max()' afin que nous puissions calculer un pourcentage pertinent pour chaque document retourné? – balexandre

+0

@balexandre postez sur https://groups.google.com/forum/#!forum/solrnet –

+0

Je peux voir que vous êtes un utilisateur maître là-bas :) thxs, va faire! – balexandre

Questions connexes