Configurez et gérez les mots vides et les listes de mots vides pour la recherche en texte intégral

S’applique à :SQL ServerBase de données Azure SQLAzure SQL Managed Instance

Pour éviter qu'un index en texte intégral ne devienne gonflé, le Moteur de base de données SQL Server dispose d'un mécanisme qui élimine les chaînes courantes qui n'aident pas la recherche. Ces chaînes ignorées sont appelées des mots vides. Pendant la création d'un index, le moteur de texte intégral omet les mots vides de l'index de recherche en texte intégral. Cela signifie que les requêtes en texte intégral ne recherchent pas sur les mots stop.

Terme Description
Mots clés Un mot vide peut être un mot avec une signification dans une langue spécifique. Par exemple, en anglais, des mots tels que a, and, is, et the sont exclus de l’index du texte intégral car ils sont connus comme inutiles pour une recherche. Un mot de passe peut aussi être un jeton qui n’a pas de signification linguistique.
Listes d’exclusion Les mots stops sont gérés dans les bases de données à l’aide d’objets appelés listes d’arrêt. Une liste de mots vides est une liste qui, associée à un index de recherche en texte intégral, s’applique aux requêtes de texte intégral sur cet index.

Utiliser une liste d’exclusion existante

Vous pouvez utiliser une liste d'exclusion existante de la manière suivante :

  • Utilisez la liste de mots vides fournie par le système dans la base de données. Le Moteur de base de données est livré avec une liste de mots vides système qui contient les mots vides les plus couramment utilisés pour chaque langue prise en charge, c’est-à-dire pour chaque langue associée par défaut aux analyseurs lexicaux donnés. Vous pouvez copier la liste de mots vides système et personnaliser cette liste en ajoutant et en supprimant des mots vides.

    La liste des arrêts du système est installée dans la base de données des ressources.

  • Utilisez une liste de mots vides personnalisée existante provenant d’une autre base de données dans l’instance de serveur actuelle, puis ajoutez ou supprimez des mots vides selon le cas.

Créer une nouvelle liste d’exclusion

Vous pouvez créer une liste d’arrêts en utilisant Transact-SQL (T-SQL) ou SQL Server Management Studio (SSMS).

Créer une nouvelle liste de mots vides avec Transact-SQL

Utilisez CREATE FULLTEXT STOPLIST.

Créez une nouvelle liste d’arrêts avec SQL Server Management Studio

  1. Dans l'Explorateur d'objets, développez le serveur.

  2. Développez Bases de données, puis développez la base de données dans laquelle vous souhaitez créer la liste de mots vides de texte intégral.

  3. Développez Stockage, puis cliquez avec le bouton droit sur Listes de mots vides de texte intégral.

  4. Sélectionnez Nouvelle liste de mots vides de texte intégral.

  5. Entrez le nom de votre nouvelle liste de mots vides.

  6. Éventuellement, spécifiez une autre personne comme propriétaire de la liste de mots vides.

  7. Sélectionnez l'une des options de création de liste de mots vides suivantes :

    • Créer une stoplist vide

    • Créer à partir de la stoplist du système

    • Créer à partir d'une stoplist de texte intégral existante

    Pour plus d’informations, consultez la section Nouvelle stoplist de texte intégral (page Généralités).

  8. Cliquez sur OK.

Utiliser une liste de mots vides dans les requêtes de texte intégral

Pour utiliser une liste de mots vides dans des requêtes, vous devez l’associer à un index de recherche en texte intégral. Vous pouvez associer une liste de mots vides à un index de texte intégral lorsque vous créez l'index, ou vous pouvez modifier l'index ultérieurement pour ajouter une liste de mots vides.

Tâche Méthode
Créez un index en texte intégral et associez-le à une liste d’arrêts Utilisez CREATE FULLTEXT INDEX.
Associer ou dissocier une liste de mots vides avec un index de recherche en texte intégral existant Utilisez ALTER FULLTEXT INDEX.

Changer les mots vides dans une liste de mots vides

Vous pouvez modifier les mots stop-mots dans une liste d’arrêts en utilisant Transact-SQL (T-SQL) ou SQL Server Management Studio (SSMS).

Ajouter ou supprimer des mots vides dans une liste de mots vides avec Transact-SQL

Utilisez ALTER FULLTEXT STOPLIST.

Ajoutez ou supprimez des mots stop-word d’une liste d’arrêts avec SQL Server Management Studio

  1. Dans l'Explorateur d'objets, développez le serveur.

  2. Développez Bases de données, puis développez la base de données.

  3. Développez Stockage, puis sélectionnez Listes de mots vides de texte intégral.

  4. Cliquez avec le bouton droit sur la liste de mots vides dont vous souhaitez modifier les propriétés, puis sélectionnez Propriétés.

  5. Dans la boîte de dialogue Propriétés de la liste de mots vides de texte intégral :

    1. Dans la zone de liste Action , sélectionnez l’une des actions suivantes : Ajouter un mot vide, Supprimer le mot vide, Supprimer tous les mots videsou Effacer la liste de mots vides.

    2. Si la zone de texte Stopword est activée pour l’action sélectionnée, saisissez un seul stopword. Ce mot vide doit être unique. Il ne peut pas déjà être dans cette liste d’arrêts pour la langue que vous choisissez.

    3. Si la zone de liste Langue de texte intégral est activée pour l’action sélectionnée, sélectionnez une langue.

  6. Cliquez sur OK.

Gérer les listes d’exclusion et leur utilisation

Utilisez les méthodes suivantes pour visualiser et gérer les listes d’arrêt.

Tâche Méthode
Afficher tous les mots vides d’une liste de mots vides Utilise sys.fulltext_stopwords.
Obtenez des informations sur toutes les listes d’arrêt dans la base de données actuelle Utilisez sys.fulltext_stoplists et sys.fulltext_stopwords.
Consulter le résultat de la création de jetons d’une combinaison d’analyseur lexical, de dictionnaire des synonymes et de liste de mots vides Utilisez sys.dm_fts_parser.
Supprimer un message d’erreur si des mots vides font échouer une opération booléenne sur une requête en texte intégral Utiliser la configuration du serveur : transformer les mots de bruit.

Plus d’informations sur la position du mot d’arrêt

Bien que l’index intégral ignore l’inclusion des mots secrètes, il prend en compte leur position. Par exemple, considérons l’expression . Instructions are applicable to these Adventure Works Cycles models Le tableau suivant décrit la position des mots dans l'expression :

Word Position
Instructions 1
are 2
applicable 3
to 4
these 5
Adventure 6
Works 7
Cycles 8
models 9

Les mots vides are, to et these qui se trouvent aux positions 2, 4 et 5 sont exclus de l’index de texte intégral. Cependant, les informations relatives à leur position sont conservées, sans affecter la position des autres mots de l'expression.

Mettre à niveau des mots parasites à partir de SQL Server 2005

Les mots parasites de SQL Server 2005 (9.x) sont remplacés par des mots vides. Lorsqu'une base de données est mise à niveau à partir de SQL Server 2005 (9.x), les fichiers de mots parasites ne sont plus utilisés. Cependant, les fichiers de bruit sont stockés dans le FTDATA\FTNoiseThesaurusBak dossier, et vous pouvez les utiliser plus tard lors de la mise à jour ou de la création des stoplists correspondantes. Pour plus d’informations sur la mise à niveau de fichiers de mots parasites en listes de mots vides, consultez Mise à niveau de la fonction de recherche en texte intégral.