2009-08-25 4 views
1

Il est possible d'augmenter le classement des résultats ContainsTable si sa correspondance exacte.Fonction ContainsTable de SQL Server Full text Problème de classement

J'ai une requête de texte intégral comme celui-ci

select iname, rang de ItemSearch_View sv INNER JOIN CONTAINSTABLE ('(FORMSOF (INFLECTIONAL, "google"))', 500 ItemSearch_View, searchString,) AS Itableau ON sv.itemid = Itableau. [KEY] ordre de rang desc

qui fournit les résultats suivants (côté droit est le rang)

Googling 352

googlé anciens enseignants, 320

googlé Ancien garçon/fille Amis 320

googlé Guy/Fille 320

Google 208

Est-il possible l'élément Item "Google" peut avoir le plus élevé classer ici.

Merci Vijai

Répondre

1

Je crois que les résultats que vous rencontrez sont dus à l'utilisation de la clause INFLECTIONAL. Par exemple, "googling" est une correspondance flexionnelle de "Google" et, en raison de la longueur accrue du mot "googling", produit un score de rang plus élevé, c'est-à-dire susceptible d'être de meilleure qualité. Comment la même requête diffère-t-elle en effectuant simplement une recherche floue pour le mot google plutôt que de chercher des formes flexionnelles?

à-dire

CONTAINSTABLE (ItemSearch_View, searchString, 'Google')

Questions connexes