Partager via


Gérer les index de recherche en texte intégral

Dans cette rubrique

  • Affichage et modification des propriétés d'un index de recherche en texte intégral

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

  • Obtention d'informations sur la colonne clé de texte intégral

  • Désactivation ou réactivation d'une table pour l'indexation de texte intégral

  • Suppression d'un index de recherche en texte intégral d'une table

Affichage et modification des propriétés d'un index de recherche en texte intégral

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 Index de texte intégral, puis dans le menu contextuel Index de texte intégral, cliquez sur Propriétés. La boîte de dialogue Propriétés d'index de recherche en texte intégral s'affiche.

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

    Page

    Description

    Général

    Affiche les propriétés de base de l'index de recherche en texte intégral. Il s'agit de plusieurs propriétés modifiables et 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 recherche en texte intégral. Les propriétés modifiables sont les suivantes :

    • Liste de mots vides de l'index de recherche en texte intégral

    • Indexation de texte intégral activée

    • Suivi des modifications

    • Liste de propriétés de recherche

    Pour plus d'informations, consultez Propriétés d'index de recherche en texte intégral (page Général).

    Colonnes

    Affiche les colonnes de table qui sont disponibles pour l'indexation de texte intégral. La 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 Propriétés d'index de texte intégral (page Colonnes).

    Planifications

    Utilisez cette page afin de créer ou gérer des planifications pour un travail de l'Agent SQL Server qui démarre un remplissage incrémentiel de la table pour remplir l'index de recherche en texte intégral. Pour plus d'informations, consultez Alimenter des index de recherche en texte intégral.

    Important

    Une fois que vous avez fermé la boîte de dialogue Propriétés d'index de recherche en texte intégral, la planification que vous venez de créer est associée à un travail de l'Agent SQL Server (Démarrer le remplissage incrémentiel de la table sur database_name.table_name).

  6. Cliquez sur OK. pour enregistrer vos modifications et fermer la boîte de dialogue Propriétés d'index de recherche en texte intégral.

[Haut de la page]

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

Vous pouvez faire appel à plusieurs fonctions Transact-SQL, comme OBJECTPROPERTYEX, pour vous procurer la valeur de diverses propriétés d'indexation de texte intégral. Ces informations sont utiles pour administrer la recherche en texte intégral et résoudre les problèmes qui la concernent.

Le tableau ci-après recense les propriétés en texte intégral liées aux colonnes et tables indexées, ainsi que les fonctions Transact-SQL qui leur sont associées.

Propriété

Description

Fonction

FullTextTypeColumn

TYPE COLUMN de la table qui contient les informations sur le type de document de 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 représente la clé de texte intégral d'une table.

INDEXPROPERTY

TableFulltextBackgroundUpdateIndexOn

Indique si une table possède une indexation de mise à jour d'arrière-plan de texte intégral.

OBJECTPROPERTYEX

TableFulltextCatalogId

ID du catalogue de texte intégral dans lequel résident les données d'indexation de texte intégral de la table.

OBJECTPROPERTYEX

TableFulltextChangeTrackingOn

Indique si le suivi des modifications de texte intégral est activé pour la table.

OBJECTPROPERTYEX

TableFulltextDocsProcessed

Nombre de lignes traitées depuis le démarrage de l'indexation en 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 de texte intégral.

OBJECTPROPERTYEX

TableFullTextMergeStatus

Indique s'il s'agit d'une table qui a un index de recherche en texte intégral qui est en cours de fusion.

OBJECTPROPERTYEX

TableFulltextPendingChanges

Nombre d'entrées de suivi des modifications en attente de traitement.

OBJECTPROPERTYEX

TableFulltextPopulateStatus

État de remplissage de la table de texte intégral.

OBJECTPROPERTYEX

TableHasActiveFulltextIndex

Indique si une table possède un index de recherche en texte intégral actif.

OBJECTPROPERTYEX

[Haut de la page]

Obtention d'informations sur la colonne clé de texte intégral

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

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

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

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

    L'instruction retourne la valeur 1 si l'index est utilisé pour garantir l'unicité de la colonne clé de texte intégral, et la valeur 0 dans le cas contraire.

Exemple

L'exemple suivant permet de déterminer si l'index PK_Document_DocumentID est utilisé pour garantir 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 la valeur 1 si l'index PK_Document_DocumentID est utilisé pour garantir l'unicité de la colonne clés de texte intégral. Si tel n'est pas le cas, la valeur 0 ou une valeur Null est retournée. La valeur Null signifie que vous utilisez un nom d'index non valide, que le nom d'index ne correspond pas à la table, que la table n'existe pas, etc.

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

  • Chaque table activée pour la recherche en texte intégral comporte une colonne qui est utilisée pour garantir l'unicité des lignes de la table (colonne de clés unique). La propriété TableFulltextKeyColumn, obtenue à l'aide de la fonction OBJECTPROPERTYEX, contient l'ID de colonne de la colonne clé unique.

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

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

Exemples

L'exemple ci-après retourne l'identificateur de la colonne clé de texte intégral ou une valeur Null. La valeur Null signifie que vous utilisez un nom d'index non valide, que le nom d'index ne correspond pas à la table, que la table n'existe pas, etc.

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

L'exemple ci-après explique 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 appelée Unique Key Column, qui contient une seule ligne indiquant 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, si le nom d'index ne correspondait pas à la table, si la table n'existait pas, etc., une valeur NULL serait retournée.

[Haut de la page]

Désactivation ou réactivation d'une table pour l'indexation de texte intégral

Dans SQL Server, par défaut, toutes les bases de données créées par les utilisateurs sont activées pour la recherche en texte intégral. De plus, 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éé sur cette table et qu'une colonne est ajoutée à l'index. Une table est automatiquement désactivée pour l'indexation de recherche en texte intégral lorsque la dernière colonne est supprimée de son index de texte intégral.

Dans une table à index de recherche en texte intégral, vous pouvez désactiver ou réactiver manuellement une table pour l'indexation de recherche en texte intégral en utilisant SQL Server Management Studio.

Pour activer une table pour l'indexation de recherche en texte intégral

  1. Développez le groupe de serveurs, développez Bases de données, puis développez la base de données qui contient la table à activer pour l'indexation de recherche en texte intégral.

  2. Développez Tables, et cliquez avec le bouton droit sur la table que vous souhaitez désactiver ou réactiver pour l'indexation de recherche en texte intégral.

  3. Sélectionnez Index de recherche en texte intégral, puis cliquez sur Désactiver l'index sur le texte intégral ou sur Activer l'index sur le texte intégral.

[Haut de la page]

Suppression d'un index de recherche en texte intégral 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 dotée de l'index de recherche en texte intégral à supprimer.

  2. Sélectionnez Supprimer l'index de texte intégral.

  3. Lorsque le système vous y invite, cliquez sur OK pour confirmer la suppression de l'index de recherche en texte intégral.

[Haut de la page]