Est-ce que les requêtes d’indexation de texte intégral MS SQL Server 2000 utilisant freetextable utilisent stemming?

StackOverflow https://stackoverflow.com/questions/1200378

Question

J'utilise l'indexation de texte intégral de MSSQL sur une poignée de tables de mon CMS et je suis malheureusement coincé avec SQL Server 2000. J'interroge l'index à l'aide de jointures freetextable et j'obtiens de très bons résultats, mais nous avons des termes uniques qui sont probablement des requêtes de recherche qui ne semblent pas avoir de caractère radical. Par exemple, une requête utilisant le terme "barre intelligente" renvoie deux lignes, mais l'une d'elles utilise les "barres intelligentes". renvoie un ensemble de résultats différent, ne se chevauchant que partiellement.

Si je comprends bien le concept de création de racine, je suppose que la première requête contient toutes les lignes de la seconde requête, mais ce n'est pas le cas.

Consultation de la documentation en ligne de MSDN, cette page mentionne dans les commentaires du paramètre freetext_string, mais cette page ne le fait pas. À partir de cela, je suppose supposer que SQL Server 2000 n’enduit pas les mots de la requête freetexttable; est-ce une supposition correcte? Existe-t-il un moyen d'encourager ou d'activer SQL Server 2000? En guise de solution de rechange, j'utiliserai probablement les fichiers du dictionnaire des synonymes pour les requêtes importantes correspondant à nos conditions particulières, mais laisserais plutôt SQL Server faire la plupart du travail.

Par la suite, si vous avez des liens vers de bonnes ressources concernant l’interrogation de texte intégral SQL Server 2000, je vous en serais très reconnaissant. Les informations MSDN sont utiles, mais j'aimerais obtenir des informations plus détaillées et ne pas en avoir trouvé beaucoup.

Était-ce utile?

La solution

Je suppose que ce que vous recherchez est un peu différent. Vous souhaitez rechercher tous les formulaires du mot. Cela a un certain rapport avec la racine, mais dans la recherche de texte intégral de MS SQL Server, vous obtenez un résultat un peu différent. Vous devez explicitement demander au serveur de rechercher toutes les formes du mot, et pas seulement le mot lui-même.

Voici comment procéder:

SELECT <select list> 
FROM [YourTable] 
WHERE CONTAINS(*, 'FORMSOF (INFLECTIONAL, smartbar)')

Il existe un article dans MSDN sur ce sujet. Selon d'autres ressources, cette fonctionnalité était également disponible dans SQL 2k (mais je n'ai pas d'instance à vérifier).

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