SQL Server CONTIENT avec des chiffres donne aucun résultat
-
22-09-2019 - |
Question
J'ai une table de base de données qui est plein texte indexé et j'utilise la fonction CONTIENT pour effectuer une recherche de requête sur elle.
Quand je fais:
SELECT * FROM Plants WHERE CONTAINS(Plants.Description, '"Plant*" AND "one*"');
Je reviens tous les résultats corrects correspondant à une description avec les mots « usine » et « un ».
Certaines plantes sont nommées comme "usine 1", "Plant 2", etc., ce qui est le problème.
Quand je fais cela, je reçois aucun résultat:
SELECT * FROM Plants WHERE CONTAINS(Plants.Description, '"Plant*" AND "1*"');
Quelqu'un sait pourquoi?
La solution
Il y a une liste de mots couramment utilisés qui ne sont pas indexés dans une recherche par mot clé, tels que « et » et « le ».
Je crois que le texte « 1 » apparaît également dans cette liste. Par conséquent, il ne semble pas dans l'index, et ne peut être trouvé avec la clause CONTAINS.
Si je me souviens bien, il y a une interface d'administration pour vous permettre de modifier cette liste de mots. J'ai essayé de le modifier une fois, il y a quelques années, et je me souviens d'avoir du mal à faire la différence après que je l'ai fait.
Autres conseils
Daan est correct. vous avez besoin d'un autre *
avant le 1. Placer les caractères génériques et d'autre d'un terme de recherche recherche la chaîne entière pour le terme de recherche quelle que soit sa position.