Gérer et surveiller la recherche sémantique

S'applique à : SQL Server

Décrit le processus d'indexation sémantique et les tâches associées à la gestion et au contrôle des index.

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 (Transact-SQL), 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 (Transact-SQL), et vérifiez les colonnes status et status_description.

La deuxième phase de l'indexation inclut l'alimentation de l'index de ressemblance de document sémantique.

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 (Transact-SQL).

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 (Transact-SQL).

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 (Transact-SQL).

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

Imposer l’alimentation des index sémantiques

Vous pouvez forcer le remplissage des index sémantiques et de recherche en texte intégral à l'aide de 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 recherche en texte intégral. Pour plus d’informations, consultez ALTER FULLTEXT INDEX (Transact-SQL) et Alimenter 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 : démarrer une alimentation complète des index sémantiques et de recherche en texte intégral

L’exemple suivant démarre une alimentation complète des index sémantiques et de recherche en texte intégral en modifiant un index de recherche en texte intégral existant sur la table Production.Document dans l’exemple de base de données AdventureWorks2022.

USE AdventureWorks2022  
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 sémantique ou de texte intégral à l'aide de la clause ENABLE/DISABLE avec la même syntaxe et le même comportement que ceux décrits pour les index de recherche en texte intégral. Pour plus d’informations, consultez ALTER FULLTEXT INDEX (Transact-SQL).

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 le comportement de la recherche en texte intégral.

-- 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

Une 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 alimenté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 en texte intégral et la recherche sémantique sont-elles installées et configurées correctement ?

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

Le service FDHOST est-il indisponible, ou existe-t-il une autre condition qui provoquerait l'échec de l'indexation de texte intégral ?

Pour plus d’informations, consultez Résoudre l’indexation de recherche en texte intégral.