2012-01-31 3 views
2

Existe-t-il un moyen de renvoyer uniquement la valeur Coord d'une similarité en tant que score d'un hit? J'ai annulé toutes les combinaisons de méthodes auxquelles je pouvais penser pour obtenir ce résultat sans aucune chance. En fait, le score ne doit pas forcément être la valeur de Coord exacte, mais tous les hits doivent être les uns par rapport aux autres en fonction de cette valeur et rien d'autre. Par exemple, si je recherche "Test Search String" et que je tape deux mots, je veux que ce score soit de 66% du score d'un hit sur les trois mots.Utiliser la valeur Coord de Lucene Similarity comme score

Ceci est dans Lucene.net 2.9.4, mais je peux traduire toutes les implémentations Java au besoin.

Merci d'avance.

Répondre

2

Je ne l'ai jamais essayé donc je ne sais pas si cela fonctionnerait, mais vous pourriez probablement créer votre propre implémentation de Similarity et l'utiliser en appelant la méthode Searcher.SetSimilarity().

ont toutes les méthodes mais Coord() de votre Similarity retour 1. La méthode Coord() pourrait simplement lire:

return overlap/(float) maxOverlap; 
+0

Merci, qui l'a fait. J'ai eu la configuration que vous avez mentionnée, mais j'ai eu ma distribution incorrecte ('return (float) (overlap/maxOverlap)'), qui a toujours retourné 0. – Chris

Questions connexes