Gérer les index Full-Text

Affichage et modification des propriétés d’un index Full-Text

Pour afficher ou modifier les propriétés d’un index de recherche en texte intégral dans 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 qui contient l’index de recherche en texte intégral.

  3. Développez Tables.

  4. Cliquez avec le bouton droit sur la table sur laquelle l’index de recherche en texte intégral est défini, sélectionnez Full-Text index, puis, dans le menu contextuel de l’indexFull-Text , cliquez sur Propriétés. La boîte de dialogue Propriétés de l’index de recherche en texte intégral s’ouvre.

  5. Dans le volet Sélectionner une page , vous pouvez sélectionner l’une des pages suivantes :

    Page Descriptif
    Généralités Affiche les propriétés de base de l’index de recherche en texte intégral. Il s’agit notamment de plusieurs propriétés modifiables et d’un certain nombre de propriétés non modifiables telles que le nom de la base de données, le nom de la table et le nom de la colonne clé de texte intégral. Les propriétés modifiables sont les suivantes :

    liste de mots vides d’indexFull-Text

    Full-Text Indexation activée

    Suivi des modifications

    Liste des propriétés de recherche



    Pour plus d’informations, consultez Full-Text Propriétés de l’index (page Général).
    Colonnes Affiche les colonnes de tableau disponibles pour l’indexation de texte intégral. La colonne ou les colonnes sélectionnées sont indexées en texte intégral. Vous pouvez sélectionner autant de colonnes disponibles que vous souhaitez inclure dans l’index de recherche en texte intégral. Pour plus d’informations, consultez Full-Text Propriétés de l’index (page Colonnes).
    Horaires Utilisez cette page pour créer ou gérer des horaires pour une tâche de l'Agent SQL Server qui démarre une population de table incrémentielle pour les populations d’index en texte intégral. Pour plus d’informations, consultez Alimenter des index de recherche en texte intégral.

    **Important** Après avoir quitté la boîte de dialogue propriétés de l’indexFull-Text , toute planification nouvellement créée est associée à un travail SQL Server Agent (Démarrer la population de table incrémentielle sur database_name).table_name).
  6. Cliquez sur OK. pour enregistrer les modifications et quitter la boîte de dialogue Propriétés de l’index de recherche en texte intégral .

Affichage des propriétés des tables et colonnes indexées

Plusieurs fonctions Transact-SQL telles que OBJECTPROPERTYEX peuvent être utilisées pour obtenir la valeur de différentes propriétés d’indexation de texte intégral. Ces informations sont utiles pour administrer et résoudre les problèmes de recherche en texte intégral.

Le tableau suivant répertorie les propriétés de texte intégral liées aux tables et colonnes indexées et à leurs fonctions de Transact-SQL associées.

Propriété Descriptif Fonction
FullTextTypeColumn TYPE COLUMN dans la table qui contient les informations de type de document pour la colonne. COLUMNPROPERTY
IsFulltextIndexed Indique si une colonne a été activée pour l’indexation de texte intégral. COLUMNPROPERTY
IsFulltextKey Indique si l’index est la clé de texte intégral d’une table. INDEXPROPERTY
TableFulltextBackgroundUpdateIndexOn Indique si une table dispose d'un index de mise à jour en arrière-plan pour le texte intégral. OBJECTPROPERTYEX
TableFulltextCatalogId ID de catalogue de texte intégral où résident les données d'index de texte intégral de la table. OBJECTPROPERTYEX
TableFulltextChangeTrackingOn Indique si un tableau a activé le suivi des modifications de texte intégral. OBJECTPROPERTYEX
TableFulltextDocsProcessed Nombre de lignes traitées depuis le démarrage de l'indexation de texte intégral. OBJECTPROPERTYEX
TableFulltextFailCount Nombre de lignes que la recherche en texte intégral n'a pas indexées. OBJECTPROPERTYEX
TableFulltextItemCount Nombre de lignes dont l'indexation de texte intégral a réussi. OBJECTPROPERTYEX
TableFulltextKeyColumn ID de la colonne clé unique pour texte intégral. OBJECTPROPERTYEX
TableFullTextMergeStatus Indique si une table qui a un index de recherche en texte intégral est en cours de fusion. OBJECTPROPERTYEX
Modifications en cours du texte intégral de la table Nombre d'entrées de suivi des modifications en attente de traitement. OBJECTPROPERTYEX
TableFulltextPopulateStatus État de la population d’un tableau de texte intégral. OBJECTPROPERTYEX
TableHasActiveFulltextIndex Indique si une table a un index de recherche en texte intégral actif. OBJECTPROPERTYEX

Obtention d’informations sur la colonne clé Full-Text

En règle générale, le résultat des fonctions d’ensemble de lignes CONTAINSTABLE ou FREETEXTTABLE doit être joint à la table de base. Dans ce cas, vous devez connaître le nom de colonne clé unique. Vous pouvez vous demander si un index unique donné est utilisé comme clé de recherche en texte intégral et vous pouvez obtenir l’identificateur de la colonne clé de texte intégral.

Pour savoir si un index unique donné est utilisé comme colonne clé de texte intégral

  1. Utilisez une instruction SELECT pour appeler la fonction INDEXPROPERTY . Dans l’appel de fonction, utilisez la fonction OBJECT_ID pour convertir le nom de la table (table_name) en l’ID de table, spécifiez le nom d’un index unique pour la table et spécifiez la IsFulltextKey propriété d’index, comme suit :

    SELECT INDEXPROPERTY( OBJECT_ID('table_name'), 'index_name',  'IsFulltextKey' );  
    

    Cette instruction retourne 1 si l’index est utilisé pour appliquer l’unicité de la colonne clé de texte intégral et 0 si ce n’est pas le cas.

Exemple

L’exemple suivant indique si l’index PK_Document_DocumentID est utilisé pour appliquer l’unicité de la colonne clé de texte intégral, comme suit :

USE AdventureWorks  
GO  
SELECT INDEXPROPERTY ( OBJECT_ID('Production.Document'), 'PK_Document_DocumentID',  'IsFulltextKey' )  

Cet exemple retourne 1 si l’index PK_Document_DocumentID est utilisé pour appliquer l’unicité de la colonne clé de texte intégral. Sinon, elle retourne 0 ou NULL. NULL implique que vous utilisez un nom d’index non valide, le nom de l’index ne correspond pas à la table, la table n’existe pas, ou ainsi de suite.

Pour rechercher l’identificateur de la colonne clé de texte intégral

  1. Chaque table avec texte intégral a une colonne utilisée pour appliquer des lignes uniques pour la table (colonne unique**clé). La TableFulltextKeyColumn propriété, obtenue à partir de la fonction OBJECTPROPERTYEX, contient l’ID de colonne de la colonne clé unique.

    Pour obtenir cet identificateur, vous pouvez utiliser une instruction SELECT pour appeler la fonction OBJECTPROPERTYEX. Utilisez la fonction OBJECT_ID pour convertir le nom de la table (table_name) en ID de table et spécifier la TableFulltextKeyColumn propriété, comme suit :

    SELECT OBJECTPROPERTYEX(OBJECT_ID( 'table_name'), 'TableFulltextKeyColumn' ) AS 'Column Identifier';  
    

Exemples

L’exemple suivant retourne l’identificateur de la colonne clé de texte intégral ou NULL. NULL implique que vous utilisez un nom d’index non valide, le nom de l’index ne correspond pas à la table, la table n’existe pas, ou ainsi de suite.

USE AdventureWorks;  
GO  
SELECT OBJECTPROPERTYEX(OBJECT_ID('Production.Document'), 'TableFulltextKeyColumn');  
GO  

L’exemple suivant montre comment utiliser l’identificateur de la colonne clé unique pour obtenir le nom de la colonne.

USE AdventureWorks;  
GO  
DECLARE @key_column sysname  
SET @key_column = Col_Name(Object_Id('Production.Document'),  
ObjectProperty(Object_id('Production.Document'),  
'TableFulltextKeyColumn')   
)  
SELECT @key_column AS 'Unique Key Column';  
GO  

Cet exemple retourne une colonne de jeu de résultats nommée Unique Key Column, qui affiche une seule ligne contenant le nom de la colonne clé unique de la table Document, DocumentID. Notez que si cette requête contenait un nom d’index non valide, le nom de l’index ne correspondait pas à la table, la table n’existait pas, et ainsi de suite, elle retournerait NULL.

Désactivation ou réactivation d’une table pour l'indexation Full-Text

Dans SQL Server, toutes les bases de données créées par l’utilisateur sont activées en texte intégral par défaut. En outre, une table individuelle est automatiquement activée pour l’indexation de texte intégral dès qu’un index de recherche en texte intégral est créé dessus et qu’une colonne est ajoutée à l’index. Une table est automatiquement désactivée pour l’indexation de texte intégral lorsque la dernière colonne est supprimée de son index de recherche en texte intégral.

Sur une table qui a un index de recherche en texte intégral, vous pouvez désactiver ou réactiver manuellement une table pour l’indexation de texte intégral à l’aide de SQL Server Management Studio.

Pour activer une table pour l’indexation de texte intégral

  1. Développez le groupe de serveurs, développez Bases de données et développez la base de données qui contient la table que vous souhaitez activer pour l’indexation en texte intégral.

  2. Développez Tables, puis cliquez avec le bouton droit sur la table à désactiver ou réactiver pour l’indexation en texte intégral.

  3. Sélectionnez Full-Text index, puis cliquez sur Désactiver Full-Text index ou Activer Full-Text index.

Suppression d’un index Full-Text d’une table

Pour supprimer un index de recherche en texte intégral d’une table

  1. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur la table contenant l’index de recherche en texte intégral que vous souhaitez supprimer.

  2. Sélectionnez Supprimer Full-Text index.

  3. Lorsque vous y êtes invité, cliquez sur OK pour confirmer que vous souhaitez supprimer l’index de recherche en texte intégral.