Je ne comprends pas vraiment pourquoi voulez-vous FTS? Si vous voulez mars exacte, cela se fait en utilisant simplement LIKE:
- SELECT * FROM test
OÙ
données LIKE '%% du monde
- --results dans
- Bonjour le monde!
- SELECT * FROM test
OÙ
données LIKE '%% j-monde
- --results dans
--Hello j-monde!
Si vous voulez jouer avec FTS. Créer et mettre votre propre (sur mesure) en texte intégral STOPLIST
- Je n'ai pas SQL Server 2005, mais j'ai vérifié que cela fonctionne en 2008.
Docs indique qu'il est possible uniquement pour le niveau de compatibilité 100 (c'est-à-dire dans SQL Server 2008).
Bien, essayez en 2005
Dans SSMS Bases de données \ votre_nom_base_de_données \ Storage \ Texte intégral STOPLIST -> le clic droit et choisissez "Nouveau STOPLIST texte intégral ...". Je l'ai nommé vgvStoplist et j'ai vérifié que le bouton radio "Créer un syoplist vide" était coché. Dans le menu contextuel de SSMS, cliquez sur dbo.test ---> Index de texte intégral -> Propriétés ---> Sélectionnez une page: Général, Liste d'index de texte intégral -> entrez le nom de la liste vide créée (Je suis entré dans vgvStoplist)
maintenant, la requête
select * from essai où contient (données, ' "j-monde")
retours seulement « H ello j-monde »(sans 'Bonjour tout le monde')
Cela peut aussi se faire par TSQL. Suivre msdn
Mise à jour ====:
Eh bien, votre question a montré que la notion de bruit est subjective. Cela a fonctionné parce que 'j' est le mot de passe du système (c.-à-d. Chercher dans le stoplist du système (*) avec la chaîne 'j' (3 symboles), voir aussi (**)) et '-' .
Je ne vous propose d'utiliser la liste des mots interdits vide. Je viens d'illustrer "comment" avec un minimum d'efforts de ma part.
L'élaboration des techniques qui vous conviennent est à vous. Je ne suis même pas expert dans ce domaine pour donner des conseils. Je vous ai répondu du principe de bon sens
Créer votre propre STOPLIST Texte intégral, remplissez-le avec votre contenu.
Vous souhaiterez peut-être réutiliser le contenu du stoplist du système.
Pour cela, vous pouvez créer
- (*) script séparé du système antidico
en créant un plus Texte intégral STOPLIST il marquage avec « Créer à partir du système antidico », puis script, il (« Fichier ... » ou « Nouvelle requête fenêtre de l'éditeur »),
puis créez votre propre script en en éditant une copie () en utilisant find et remplacement et/ou copier coller à partir & () .
(**) Voici un extrait de la copie scénarisé, nommé par moi comme vgv_sys_copy, du système FT STOPLIST:
ALTER FULLTEXT STOPLIST [vgv_sys_copy] ADD 'j' LANGUAGE 'French';
ALTER FULLTEXT STOPLIST [vgv_sys_copy] ADD 'j' LANGUAGE 'Italian';
ALTER FULLTEXT STOPLIST [vgv_sys_copy] ADD 'j' LANGUAGE 'Japanese';
ALTER FULLTEXT STOPLIST [vgv_sys_copy] ADD 'j' LANGUAGE 'Dutch';
ALTER FULLTEXT STOPLIST [vgv_sys_copy] ADD 'j' LANGUAGE 'Russian';
ALTER FULLTEXT STOPLIST [vgv_sys_copy] ADD 'j' LANGUAGE 'Swedish';
ALTER FULLTEXT STOPLIST [vgv_sys_copy] ADD 'j' LANGUAGE 'Simplified Chinese';
ALTER FULLTEXT STOPLIST [vgv_sys_copy] ADD 'j' LANGUAGE 'British English';
Update2
Je posté subquestion Performace gains of searching with FTS over it with LIKE on indexed colum(s)?
J'ai aussi remarqué que j'ai répondu en me basant sur des fonctionnalités non disponibles dans SQL Server 2005
Il devrait y avoir MSSQL \ FTData \ noiseENG.txt et j'ai aimé les réponses à Noise Words in Sql Server 2005 Full Text Search
J'aurais supprimé 'j'. En fait, si j'étais vous, j'aurais créé noiseENG.txt à partir de zéro. Mais ce sont vos décisions qui dépendent de votre contexte et de multiples facteurs inconnus pour moi.
Je crois que vous devriez le poster comme question séparée. J'ai déjà été banni plusieurs fois dans les sites StackExchange (et je suis toujours en SF) pour des discussions. Ce n'est pas un forum ou un forum de discussion, cf. FAQ.
Alors avez-vous baissé toutes les autres réponses à cause de cela? En réalité, votre réponse aurait dû être postée ici dans le fil "original" et l'autre poste devrait être signalé comme doublon. – Matt
J'ai fermé le duplicata, alors s'il vous plaît modifier ceci avec le texte de votre réponse réelle. –
Merci cela semble intéressant. Je vais jeter un coup d'oeil dans ceci. Je n'ai pas considéré la «solution LIKE» en raison de l'efficacité. Je dois gérer des millions de textes et des millions de mots-clés. Merci. – cs0815