Gérer et surveiller la recherche sémantique

S'applique à :SQL Server

Cet article explique comment vérifier le statut et la taille de l’indexation, forcer la population, et désactiver ou réactiver l’indexation sémantique. L’indexation sémantique se déroule en deux phases en conjonction avec l’indexation en texte intégral.

Vérifier l’état de l’indexation sémantique

La première phase de l'indexation sémantique est-elle achevée ?

Interrogez la vue de gestion dynamique sys.dm_fts_index_population, et vérifiez les colonnes status et status_description.

La première phase de l'indexation inclut l'alimentation de l'index de mots clés de recherche en texte intégral et de l'index d'expressions clés sémantiques, ainsi que l'extraction de données de ressemblance de document.

USE database_name;
GO

SELECT *
FROM sys.dm_fts_index_population
WHERE table_id = OBJECT_ID('table_name');
GO

La seconde phase de l'indexation sémantique est-elle achevée ?

Interrogez la vue de gestion dynamique sys.dm_fts_semantic_similarity_population et vérifiez les colonnes status et status_description.

La deuxième phase de l’indexation comprend l’alimentation de l’index de similarité sémantique des documents.

USE database_name;
GO

SELECT *
FROM sys.dm_fts_semantic_similarity_population
WHERE table_id = OBJECT_ID('table_name');
GO

Vérifier la taille des index sémantiques

Quelle est la taille logique d'un index d'expressions clés sémantiques ou d'un index de ressemblance de document sémantique ?

Interrogez la vue de gestion dynamique sys.dm_db_fts_index_physical_stats.

La taille logique est affichée en nombre de pages d'index.

USE database_name;
GO

SELECT *
FROM sys.dm_db_fts_index_physical_stats
WHERE object_id = OBJECT_ID('table_name');
GO

Quelle est la taille totale des index sémantiques et de recherche en texte intégral pour un catalogue de texte intégral ?

Interrogez la propriété IndexSize de la fonction de métadonnées FULLTEXTCATALOGPROPERTY.

SELECT FULLTEXTCATALOGPROPERTY('catalog_name', 'IndexSize');
GO

Combien d'éléments sont indexés dans les index sémantiques et de recherche en texte intégral pour un catalogue de texte intégral ?

Interrogez la propriété ItemCount de la fonction de métadonnées FULLTEXTCATALOGPROPERTY.

SELECT FULLTEXTCATALOGPROPERTY('catalog_name', 'ItemCount');
GO

Imposer l’alimentation des index sémantiques

Vous pouvez forcer le remplissage des index de texte intégral et des index sémantiques en utilisant la clause START, STOP, PAUSE ou RESUME POPULATION, avec la même syntaxe et le même comportement que ceux décrits pour les index de texte intégral. Pour plus d’informations, consultez ALTER FULLTEXT INDEX et Remplissage des index de recherche en texte intégral.

Étant donné que l'indexation sémantique dépend de l'indexation de texte intégral, les index sémantiques ne sont remplis que lorsque les index de recherche en texte intégral associés le sont également.

Exemple : Lancer une population complète d’index texte intégral et sémantiques

L’exemple suivant lance la population complète des index texte complet et sémantiques en modifiant un index texte intégral existant dans la Production.Document table de la AdventureWorks2025 base de données d’exemple.

USE AdventureWorks2025;
GO

ALTER FULLTEXT INDEX ON Production.Document
    START FULL POPULATION;
GO

Désactiver ou réactiver l’indexation sémantique

Vous pouvez activer ou désactiver l’indexation en texte intégral ou sémantique en utilisant la ENABLE clause or DISABLE avec la même syntaxe et le même comportement que ceux décrits pour les index en texte intégral. Pour plus d’informations, consultez ALTER FULLTEXT INDEX.

Lorsque l'indexation sémantique est désactivée et suspendue, les requêtes sur les données sémantiques continuent de s'exécuter avec succès et retournent des données indexées précédemment. Ce comportement n’est pas cohérent avec celui de Full-Text Recherche.

-- To disable semantic indexing on a table
USE database_name;
GO

ALTER FULLTEXT INDEX ON table_name DISABLE;
GO

-- To re-enable semantic indexing on a table
USE database_name;
GO

ALTER FULLTEXT INDEX ON table_name ENABLE;
GO

À propos des phases d’indexation sémantique

La recherche sémantique indexe deux types de données pour chaque colonne sur laquelle elle est activée :

  1. Phrases clés

  2. Ressemblance de document

L'indexation sémantique se produit en deux phases, conjointement à l'indexation de texte intégral :

  1. Phase 1. L'index de mots clés de texte intégral et l'index d'expressions clés sémantiques sont remplis en même temps, en parallèle. Les données requises pour indexer la ressemblance de document sont également extraites à ce moment.

  2. Phase 2. L'index de ressemblance de document sémantique est rempli à son tour. Cet index dépend des deux index remplis à la phase précédente.

Problème : Les index sémantiques ne sont pas peuplés

Les index de recherche en texte intégral associés sont-ils remplis ?

Étant donné que l'indexation sémantique dépend de l'indexation de texte intégral, les index sémantiques ne sont remplis que lorsque les index de recherche en texte intégral associés le sont également.

La recherche Full-Text et la recherche sémantique sont-elles correctement installées et configurées ?

Pour plus d’informations, consultez Installer et configurer la recherche sémantique.

Le service fdhost n’est-il pas disponible, ou y a-t-il une autre condition qui pourrait provoquer l’échec de l’indexation du texte intégral ?

Pour plus d’informations, consultez Résoudre les problèmes d’indexation en texte intégral.