Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

La recherche plein texte ne fonctionne pas si un mot vide est inclus même si la liste de mots vides est vide

Entre-temps, j'ai réussi à résoudre le problème. Le problème était que j'avais ma propre liste d'arrêt qui était en effet vide mais mon catalogue de texte intégral n'était pas associé à ma propre liste d'arrêt mais à celle du système. Voici quelques requêtes utiles pour résoudre les problèmes de recherche de mots vides et de texte intégral :

Interroger les mots vides (ne renvoie pas ceux du système !) :

select * from sys.fulltext_stopwords

Interroger les listes d'arrêt (ne renvoie pas la liste système !) :

select * from sys.fulltext_stoplists

Vérifiez quels mots sont inclus dans le catalogue :

SELECT * FROM sys.dm_fts_index_keywords(DB_ID('dbname'), OBJECT_ID('tablename'))

Vérifiez l'association :

select fulltext_catalog_id,stoplist_id, * from sys.fulltext_indexes;

Désactiver la liste de mots vides :

ALTER FULLTEXT INDEX ON CremeSearchFT SET STOPLIST = OFF

J'espère que cela aide quelqu'un. :)