Configurer et gérer les mots vides et listes de mots vides pour la recherche en texte intégral

S’applique à :SQL ServerAzure SQL Database

Pour empêcher un index de recherche en texte intégral de devenir gonflé, SQL Server dispose d’un mécanisme qui ignore 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 de texte intégral ne rechercheront pas les mots vides.

Mots vides. Un mot vide peut être un mot avec une signification dans une langue spécifique. Par exemple, en français, les mots tels que « un », « et », « est » ou « le » sont écartés de l'index de recherche en texte intégral, car ils sont inutiles dans le cadre d'une recherche. Un mot vide peut également être un jeton qui n’a pas de signification linguistique.

Listes de mots vides. Les mots vides sont gérés dans des bases de données à l'aide d'objets appelés des listes de mots vides. 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 de mots vides existante

Vous pouvez utiliser une liste de mots vides existante comme suit :

  • Utilisez la liste de mots vides fournie par le système dans la base de données. SQL Server est fourni 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 aux analyseurs de mots donnés par défaut. Vous pouvez copier la liste de mots vides système et personnaliser cette liste en ajoutant et en supprimant des mots vides.

    La liste de mots vides système est installée dans la base de données Resource .

  • Utilisez une liste de mots vides personnalisée issue d’une autre base de données dans l’instance de serveur actuelle, puis ajoutez ou supprimez des mots vides au besoin.

Créer une nouvelle liste de mots vides

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

Utilisez CREATE FULLTEXT STOPLIST.

Créer une nouvelle liste de mots vides avec 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 liste de mots vides vide

    • Créer à partir de la liste de mots vides système

    • Créer à partir d'une liste de mots vides de texte intégral existante

    Pour plus d’informations, consultez Nouvelle liste de mots vides de texte intégral (page Général).

  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 joindre une liste de mots vides à un index de recherche en texte intégral lorsque vous créez l'index, ou vous pouvez modifier ultérieurement l'index pour ajouter une liste de mots vides.

Créer un index de recherche en texte intégral et lui associer une liste de mots vides

Utilisez CREATE FULLTEXT INDEX (Transact-SQL).

Associer ou dissocier une liste de mots vides avec un index de recherche en texte intégral existant

Utilisez ALTER FULLTEXT INDEX (Transact-SQL).

Changer les mots vides dans une liste de mots vides

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

Utilisez ALTER FULLTEXT STOPLIST (Transact-SQL).

Ajouter ou supprimer des mots vides dans une liste de mots vides avec 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 Mot vide est activée pour l’action sélectionnée, entrez un mot vide unique. Ce nouveau mot vide doit être unique ; autrement dit, il ne doit pas déjà figurer dans la liste de mots vides correspondant à la langue sélectionnée.

    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 de mots vides et leur utilisation

Afficher tous les mots vides d’une liste de mots vides

Utilisez sys.fulltext_stopwords (Transact-SQL).

Obtenir des informations sur toutes les listes de mots vides dans la base de données actuelle

Utilisez sys.fulltext_stoplists (Transact-SQL) et sys.fulltext_stopwords (Transact-SQL).

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 (Transact-SQL).

Supprimer un message d’erreur si des mots vides provoquent l’échec d’une opération booléenne sur une requête de texte intégral

Utilisez l’option de configuration de serveur Transformer les mots parasites.

Plus d’informations sur la position des mots vides

Bien qu'il ignore l'inclusion des mots vides, l'index de recherche en texte intégral prend en considération leur position. Prenons l'exemple de l'expression suivante : « 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
à 4
these 5
Adventure 6
Works 7
Cycles 8
models 9

Les mots vides « are », « to » et « these » situés aux positions 2, 4 et 5 sont écartés de l'index de recherche en 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 SQL Server 2005 (9,x) ont été remplacés par des mots vides. Lorsqu’une base de données est mise à niveau à partir de SQL Server 2005 (9.x), les fichiers noise-word ne sont plus utilisés. Toutefois, les fichiers de mots parasites sont stockés dans le dossier FTDATA\ FTNoiseThesaurusBak, et vous pouvez les utiliser ultérieurement lors de la mise à jour ou de la génération des listes de mots vides 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.