Gérer les index de recherche en texte intégral
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
Dans l'Explorateur d'objets, développez le serveur.
Développez Bases de données, puis la base de données qui contient l’index de recherche en texte intégral.
Développez Tables.
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 recherche en texte intégralet, dans le menu contextuel Index de recherche en 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.
Dans le volet Sélectionner une page , vous pouvez sélectionner l’une des pages suivantes :
Page Description Généralités 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 de l’index de 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** Après avoir quitté la boîte de dialogue Propriétés de l’index de texte intégral, toute planification nouvellement créée est associée à un travail SQL Server Agent (Démarrer la population incrémentielle de table sur database_name.table_name).Cliquez sur OK. pour enregistrer les modifications et quitter la boîte de dialogue Propriétés de l’index de texte intégral .
Affichage des propriétés des colonnes et tables 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 la recherche en texte intégral et résoudre les problèmes qui la concernent.
Le tableau suivant répertorie les propriétés de texte intégral liées aux tables et colonnes indexées et à leurs fonctions Transact-SQL 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 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 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 |
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. Dans 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 spécifiez 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 l’ID de table et spécifiez la
TableFulltextKeyColumn
propriété, 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.
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
Développez le groupe de serveurs, Bases de données, puis la base de données qui contient la table à activer pour l’indexation de texte intégral.
Développez Tableset cliquez avec le bouton droit sur la table que vous souhaitez désactiver ou réactiver pour l’indexation de texte intégral.
Sélectionnez Index de recherche en texte intégral, puis cliquez sur Disable Full-Text index (Désactiver l’index de recherche en texte intégral) ou Enable Full-Text index(Activer l’index de recherche en texte intégral).
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
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.
Sélectionnez Supprimer l’index de recherche en texte intégral.
Quand le système vous y invite, cliquez sur OK pour confirmer la suppression de l’index de recherche en texte intégral.