2010-03-25 6 views
2

J'ai une table de base de données qui est indexée en texte intégral et j'utilise la fonction CONTAINS pour effectuer une requête de recherche sur elle.SQL Server CONTAINS avec des chiffres ne donne aucun résultat

Quand je fais:

SELECT * FROM Plants WHERE CONTAINS(Plants.Description, '"Plant*" AND "one*"'); 

Je reviens tout correspondant à des résultats corrects une description avec les mots « plantes » et « un ».

Certaines plantes sont nommées "Plant 1", "Plant 2", etc. et c'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?

+0

Est-ce le serveur 2005 ou 2008? –

+0

C'est un serveur 2005 – dale

Répondre

2

Il existe 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 n'apparaît pas dans l'index et ne peut pas être trouvé avec la clause CONTAINS. Si je me souviens bien, il existe une interface d'administration pour vous permettre de modifier cette liste de mots communs. J'ai essayé de l'éditer une fois, il y a quelques années, et je me souviens avoir eu du mal à faire la différence après.

+1

Merci, c'était tout. Les fichiers se trouvaient ici: Program Files \ Microsoft SQL Serveur \ MSSQL.x \ MSSQL \ FTData \ noiseXXX.txt – dale

0

Daan a raison. vous avez besoin d'un autre * avant le 1. Les caractères génériques placés de chaque côté d'un terme de recherche recherchent la chaîne entière pour le terme recherché, quelle que soit sa position.

+0

Non, ce n'est pas le cas, mêmes résultats avec ou sans étoiles au début – dale

Questions connexes