Résoudre l’indexation de texte intégral

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Dépanner les échecs de l'indexation de texte intégral

Lors du remplissage ou de la gestion d'un index de recherche en texte intégral, il est possible que l'indexeur de texte intégral, pour les raisons détaillées ci-dessous, ne parvienne pas à indexer une ou plusieurs lignes. Ces erreurs au niveau des lignes n'empêchent pas l'achèvement du remplissage. L'indexeur ignore ces lignes, et leur contenu ne peut donc pas être interrogé.

Les défaillances d'indexation peuvent se produire dans les cas suivants :

  • L'indexeur ne peut pas trouver ou charger un composant de filtre ou d'analyseurs lexicaux. Cet échec peut se produire si la ligne de table contient un format de document ou du contenu dans une langue qui n’a pas été inscrite auprès de l’instance de SQL Server. Il peut également se produire si le composant inscrit de l'analyseur lexical ou du filtre n'est pas signé, ou en cas d'échec de la vérification de la signature lors de son chargement. Azure SQL et Azure SQL Managed Instance ne prennent pas en charge les analyseurs de mots tiers.

  • Un composant, par exemple un analyseur lexical ou un filtre, échoue et retourne une erreur à l’indexeur. Cet échec peut se produire si le document en cours d’indexation est endommagé, interdisant au filtre d’extraire le texte du document. Il peut également survenir quand un composant est incapable de traiter le contenu d’une même ligne au-delà d’une certaine taille, en raison de limitations de mémoire sur l’hôte de démon de filtre de texte intégral (fdhost.exe).

Pour chaque défaillance au niveau d'une ligne, le journal de l'analyse contient des détails sur les raisons qui l'ont provoquée. Le nombre d'erreurs est résumé à la fin d'un remplissage complet ou incrémentiel.

D'autres défaillances peuvent avoir un effet sur le processus d'indexation lui-même et empêcher l'achèvement du remplissage :

  • L'index de texte intégral dépasse le nombre maximal de lignes admissibles dans un catalogue de texte intégral.

  • Un index cluster ou un index clé de texte intégral sur la table en cours d'indexation est modifié, supprimé ou reconstruit.

  • Une défaillance matérielle ou l'endommagement d'un disque provoque l'endommagement du catalogue de texte intégral.

  • Un groupe de fichiers contenant la table en cours d'indexation de texte intégral est mis hors ligne ou en lecture seule.

Examinez le journal d’analyse à la fin de toutes les opérations lourdes de remplissage d’index de texte intégral ou quand un remplissage ne s’est pas achevé.

Composants non signés

Par défaut, l'indexeur de texte intégral requiert que les filtres et les analyseurs lexicaux qu'il charge soient signés. S'ils ne sont pas signés, ce qui arrive parfois lorsque des composants personnalisés sont installés, vous devez configurer l'indexeur de texte intégral pour qu'il ignore la vérification de signature.

Important

Ignorer la vérification des signatures rend l’instance de SQL Server moins sécurisée. Il est recommandé de signer tous les composants que vous implémentez ou de vérifier que tous les composants que vous achetez sont signés. Pour plus d’informations sur la signature des composants, consultez sp_fulltext_service (Transact-SQL).

Index de recherche en texte intégral dans un état incohérent après la restauration du journal des transactions

Lors de la restauration du journal des transactions d'une base de données, il arrive qu'un message d'avertissement s'affiche en indiquant que l'index de recherche en texte intégral n'est pas dans un état cohérent. Cela se produit lorsque l'index de recherche en texte intégral d'une table est modifié après la sauvegarde de la base de données. Pour rendre un état cohérent à l'index de recherche en texte intégral, vous devez exécuter un remplissage complet (analyse) sur la table. Pour plus d’informations, consultez Alimenter des index de recherche en texte intégral.

Voir aussi

ALTER FULLTEXT CATALOG (Transact-SQL)
Alimenter des index de recherche en texte intégral