Question

Il existe une procédure de stockage qui utilise FREETEXTTABLE deux fois sur deux tables, puis fusionne les résultats et renvoie le top 50.

Le problème est que si je fais une recherche sur "Women of Brewster", les résultats sont renvoyés "Confession d'un ex doofus motha". avec un rang de 143 du tableau A et deuxième "Women of Brewster Place" avec un rang de 102 du tableau B.

Est-ce à cause du compte? (Le total des résultats du tableau A est de 2399. Le total des résultats du tableau B est de 3445.)

Était-ce utile?

La solution

La réponse courte:

  

Le classement Freetext est basé sur OKAPI   Formule de classement BM25. Chaque terme du   requête est classée, et les valeurs sont   résumée. Les requêtes Freetext ajouteront   mots à la requête via flexionnelle   génération (formes à tige du   termes de la requête d'origine); ces mots sont   traité comme des termes séparés sans   pondération spéciale ou relation avec   les mots dont ils étaient   généré. Synonymes générés à partir du   Les thésaurus sont traités comme   Termes séparés, de pondération égale.

La réponse beaucoup plus longue et bien plus compliquée peut être trouvée sur le site de Microsoft, bien sûr. Pour des mathématiques avancées, cliquez ici .

Autres conseils

1) Le fichier de bruit était limité à quelques caractères, ce qui signifie que le mot "of"; est maintenant considéré comme important.

2) Les résultats des deux tableaux (nombre) ont de l'importance, car le tableau le plus petit recevra probablement une meilleure valeur de pondération. Cela biaisera le rang pour être plus élevé dans un tableau plus petit.

Le lien de Josef avec MSDN a été très utile pour comprendre comment il calcule la valeur du rang.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top