Créer un index Full-Text sur une colonne SQL Server avec un script

Tutoriel pour créer des index de recherche en texte intégral, full-text index, sur une colonne SQL Server avec des scripts.

L’exploitation de la puissance de la recherche via les index full-text sur une colonne SQL Server peut considérablement améliorer l’efficacité et la rapidité de vos requêtes dans les projets de development SQL Server. Pour exploiter cette fonctionnalité, créer d’abord un index full-text sur la colonne souhaitée. Ce tutoriel vous guidera pas à pas dans le processus de configuration d’un index plein texte sur une colonne SQL Server, en commençant par la création de la table et en terminant par la création de l’index lui-même.

Pour utiliser la recherche plein texte sur une colonne, vous devez créer un index plein texte sur cette colonne. Les index plein texte sont différents des index standard SQL Server. Voici comment procéder dans SQL Server :

1. Créer la table à indexer

Considérons tout d’abord la table SQL Server suivante qui sert d’exemple pour cet index, à créer avec SSMS.

CREATE TABLE dbo.Clients (
   IDClient INT UNIQUE NOT NULL,
   NomClient VARCHAR(255),
   Pays VARCHAR(255)
);

Insérer ensuite une douzaine de lignes avec ces 3 colonnes:

  • Numéro de client
  • Nom de client
  • Pays
INSERT INTO dbo.Clients (IDClient, NomClient, Pays)
VALUES
   (1, 'John Smith', 'USA'),
   (2, 'Jane Doe', 'Canada'),
   (3, 'Bob Johnson', 'USA'),
   (4, 'Alice Williams', 'UK'),
   (5, 'Charlie Brown', 'USA'),
   (6, 'Sophie Turner', 'UK'),
   (7, 'James Wilson', 'Canada'),
   (8, 'Linda Taylor', 'USA'),
   (9, 'Michael Davis', 'UK'),
   (10, 'Emily Miller', 'Canada'),
   (11, 'William Garcia', 'USA'),
   (12, 'Elizabeth Martinez', 'UK');

2. Créer un index unique sur la table des clients

Après avoir créé la table d’exemple, la deuxième étape est de s’assurer que la base de données dispose d’un index unique. C’est une condition préalable à la création d’un index de type full-text. Pour la table des Clients, la colonne IDClient est unique et non nulle, il est donc possible de l’utiliser :

CREATE UNIQUE INDEX ui_IDClient
ON dbo.Clients(IDClient);

3. Créer le catalogue full-text SQL Server

Une fois l’index unique créé, créer maintenant le catalogue de rechercher de texte intégral. Un catalogue de type full-text est un conteneur logique.

CREATE FULLTEXT CATALOG ft_Catalog AS DEFAULT;

4. Ajouter l’index Full-Text à la colonne MS SQL

Enfin, effectuer maintenant la dernière étape, c’est-à-dire créer l’index Full-Text sur la colonne NomClient dans la table des clients:

CREATE FULLTEXT INDEX ON dbo.Clients
(
    NomClient LANGUAGE French
)
KEY INDEX ui_IDClient
   ON ft_Catalog 
WITH CHANGE_TRACKING AUTO;

Dans cette requête T-SQL pour créer l’index, voici les les étapes et les mots-clés expliqués:

  • LANGUAGE French spécifie que la colonne NomClient est en langue française. SQL Server utilise cette information pour la coupure de mots et l’abréviation, par exemple.
  • KEY INDEX ui_IDClient spécifie l’index unique à utiliser par l’index Full-Text.
  • ON ft_Catalog spécifie le nom du catalogue plein texte créé à l’étape précédente.
  • WITH CHANGE_TRACKING AUTO spécifie que les modifications: mises à jour, suppressions ou insertions, apportées aux données de la table sont propagées vers l’index.

Veuillez noter que ces commandes doivent être exécutées par un utilisateur disposant des autorisations nécessaires pour créer des catalogues et des index Full-Text, généralement un administrateur de base de données. En outre, la recherche plein texte doit être installée et activée pour la base de données dans laquelle ces commandes sont exécutées. Si le geste n’est pas installé et actif, le message d’erreur suivant s’affiche dans SSMS :

En Français:

La recherche de texte intégral n’est pas installée ou il est impossible de charger le composant de recherche de texte intégral.

Et en Anglais:

Full-Text Search is not installed, or a full-text component cannot be loaded.

Conclusion sur la création d’index Full-Text avec des scripts T-SQL

Pour conclure sur ces étapes nécessaires pour créer un index plein texte sur une colonne SQL Server, ce processus implique quelques étapes clés. Comment la création de la table et de l’index unique. Ensuite, l’ajout d’un catalogue et enfin, la création de l’index Full-Text lui-même.

Garder à l’esprit que l’exécution de ces tâches nécessite des autorisations d’administrateur sur la base de données cible. Maintenant que vous disposez des scripts, il est simple d’améliorer considérablement les performances des requêtes, en particulier pour les opérations de recherche intensives utilisant du texte. Assurez-vous toujours que la recherche plein texte est installée et activée pour la base de données afin d’utiliser ces fonctionnalités.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*