Index de texte intégral

Mis à jour : 17 juillet 2006

Il s'agit d'un type particulier d'index fonctionnel basé sur des jetons. Les index de texte intégral sont créés et conservés par le service du moteur de texte intégral Microsoftpour SQL Server (MSFTESQL). Le processus de création d'un index de texte intégral est assez différent du processus de création des autres types d'index. Au lieu de construire une structure d'arbre B (B-tree) en fonction d'une valeur stockée dans une ligne particulière, MSFTESQL crée une structure d'index inversée, empilée, compressée et basée sur des jetons individuels provenant du texte indexé.

Dans SQL Server 2005, la taille d'un index de texte intégral est limitée uniquement par les ressources mémoire disponibles de l'ordinateur sur lequel l'instance de SQL Server est exécutée.

Le processus de création et de conservation d'un index de texte intégral se nomme le remplissage de l'index. Microsoft prend en charge les types suivants de remplissage d'index de texte intégral :

  • Remplissage complet
  • Remplissage basé sur le suivi des modifications
  • Remplissage basé sur l'horodatage incrémentiel

Remplissage complet

En règle générale, il se produit lorsqu'un catalogue de texte intégral ou un index de texte intégral est rempli pour la première fois. Les index peuvent ensuite être conservés via le remplissage par suivi des modifications ou le remplissage incrémentiel.

Lors du remplissage complet d'un catalogue de texte intégral, les entrées d'index sont créées pour toutes les lignes de toutes les tables couvertes par le catalogue. Si un remplissage complet est requis pour une table, les entrées d'index sont créées pour toutes les lignes de cette table.

Si vous ne souhaitez pas que l'index de texte intégral soit rempli lors de sa création, à l'aide de l'instruction CREATE FULLTEXT INDEX, puis avec l'option CHANGE TRACKING OFF, vous devez spécifier NO POPULATION. L'index n'est rempli qu'une fois que l'utilisateur a exécuté la commande ALTER FULLTEXT INDEX avec la clause START FULL, INCREMENTAL ou UPDATE POPULATION.

Remplissage basé sur le suivi des modifications

SQL Server conserve un enregistrement des lignes qui ont été modifiées dans une table créée pour l'indexation de texte intégral. Ces modifications sont propagées à l'index de texte intégral.

Vous démarrez le suivi des modifications en spécifiant l'option WITH CHANGE_TRACKING dans l'instruction CREATE FULLTEXT INDEX. Lors de l'utilisation du suivi des modifications, vous pouvez spécifier la façon dont ces dernières doivent être propagées à l'index de texte intégral.

ms142575.note(fr-fr,SQL.90).gifRemarque :
Le remplissage par suivi des modifications nécessite un remplissage initial de l'index de texte intégral en question.

Pour propager automatiquement les modifications vers l'index de texte intégral, utilisez l'option AUTO dans les instructions CREATE FULLTEXT INDEX ou ALTER FULLTEXT INDEX.

En spécifiant l'option MANUAL, les modifications peuvent être propagées manuellement, selon une planification, ou à l'aide de l'Agent SQL Server ; vous pouvez également les propager manuellement vous-même.

ms142575.note(fr-fr,SQL.90).gifRemarque :
Une petite charge de traitement est associée au suivi des modifications. Utilisez l'option CHANGE TRACKING OFF, si vous ne souhaitez pas que SQL Server effectue le suivi des modifications.

Remplissage basé sur l'horodatage incrémentiel

Le remplissage incrémentiel permet de mettre à jour l'index de texte intégral pour les lignes ajoutées, supprimées ou modifiées après le dernier remplissage ou pendant l'exécution de ce dernier. Pour permettre un remplissage incrémentiel, la table indexée doit disposer d'une colonne dont le type de données est timestamp. S'il n'existe pas de colonne de type timestamp, le remplissage incrémentiel ne peut s'effectuer. Une demande de remplissage incrémentiel dans une table sans colonne de type timestamp entraîne un remplissage complet.

Les demandes de remplissage incrémentiel sont implémentées sous forme de remplissages complets si des métadonnées concernant l'index de texte intégral de la table ont été modifiées depuis le dernier remplissage. Ceci implique la modification de la définition d'une colonne, d'un index ou d'un index de texte intégral.

À la fin d'un remplissage, l'utilitaire de rassemblement SQL enregistre une nouvelle valeur timestamp. Cette valeur est égale à la valeur timestamp la plus élevée identifiée par l'utilitaire de rassemblement SQL. Cette valeur est utilisée au démarrage du prochain remplissage incrémentiel.

Voir aussi

Concepts

Principes de base de la recherche de texte intégral

Autres ressources

CREATE FULLTEXT INDEX (Transact-SQL)
ALTER FULLTEXT INDEX (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

17 juillet 2006

Nouveau contenu :
  • Ajout d'une phrase mentionnant que la taille d'un index de texte intégral se limite uniquement aux ressources mémoire disponibles de l'ordinateur.