Configurer et gérer les analyseurs lexicaux et générateurs de formes dérivées pour la recherche

Ils effectuent une analyse linguistique de l'ensemble des données indexées en texte intégral. Elle implique la recherche des limites de mots (coupure de mots) et la conjugaison des verbes (outil de conjugaison). Les analyseurs lexicaux et les générateurs de formes dérivées sont spécifiques à la langue, et les règles de l'analyse linguistique diffèrent selon les langues. Pour une langue donnée, un analyseur lexical identifie des mots individuels en déterminant l'emplacement des limites de mots d'après les règles lexicales de cette langue. Chaque mot (également appelé jeton) est inséré dans l'index de recherche en texte intégral dans une représentation compressée afin de réduire sa taille. Le générateur de formes dérivées génère des formes flexionnelles d'un mot particulier selon les règles spécifiques d'une langue (par exemple, « running », « ran » et « runner » constituent différentes formes du mot « run »).

L'utilisation d'analyseurs lexicaux spécifiques aux langues permet d'obtenir des termes plus précis pour chaque langue. Quand il existe un analyseur lexical pour une famille de langues, et non pour une sous-langue spécifique, la langue principale est utilisée. Par exemple, l'analyseur lexical en français gère le texte écrit en français canadien. Si aucun analyseur lexical n'est disponible pour une langue particulière, l'analyseur lexical en langue neutre est utilisé. Avec l'analyseur lexical en langue neutre, les mots sont décomposés en caractères neutres tels que des espaces et des signes de ponctuation.

Dans cette rubrique

  • Inscription d'analyseurs lexicaux

  • Définition de l'option Langue de texte intégral par défaut

  • Choix de la langue pour une colonne indexée

  • Obtention d'informations sur les analyseurs lexicaux

  • Dépannage des erreurs de délai d'attente de l'analyse lexicale

  • Comprendre l'impact de nouveaux analyseurs lexicaux

Inscription d'analyseurs lexicaux

Pour utiliser les analyseurs lexicaux d'une langue, vous devez les inscrire. Pour les analyseurs lexicaux inscrits, les ressources linguistiques associées (générateurs de formes dérivées, mots parasites [mots vides] et fichiers de dictionnaire des synonymes) deviennent également disponibles pour des opérations d'indexation et d'interrogation de texte intégral. Pour consulter la liste des langues dont les analyseurs lexicaux sont actuellement inscrits auprès de SQL Server, utilisez l'instruction Transact-SQL suivante :

SELECT * FROM sys.fulltext_languages

Si vous ajoutez, supprimez ou modifiez un analyseur lexical, vous devez actualiser la liste des identificateurs de paramètres régionaux Microsoft Windows pris en charge pour l'indexation et les requêtes de texte intégral. Pour plus d'informations, consultez Afficher ou modifier des filtres et des analyseurs lexicaux inscrits.

Définition de l'option Langue de texte intégral par défaut

Dans le cas d'une version localisée de SQL Server, le programme d'installation de SQL Server définit l'option Langue de texte intégral par défaut en fonction de la langue du serveur s'il existe une correspondance appropriée. Pour une version non localisée de SQL Server, l'anglais est la valeur affectée par défaut à l'option default full-text language.

Lorsque vous créez ou modifié un index de recherche en texte intégral, vous devez spécifier une langue différente pour chaque colonne indexée de texte intégral. Si aucune langue n'est spécifiée pour une colonne, la valeur par défaut est déterminée par l'option de configuration default full-text language.

[!REMARQUE]

Toutes les colonnes répertoriées dans une clause de fonction de requête de texte intégral doivent utiliser la même langue, sauf si l'option LANGUAGE est spécifiée dans la requête. La langue utilisée pour la colonne d'index de recherche en texte intégral faisant l'objet d'une requête détermine l'analyse linguistique menée sur les arguments des prédicats de requête de texte intégral (CONTAINS et FREETEXT) et des fonctions de requête de texte intégral (CONTAINSTABLE et FREETEXTTABLE).

Choix de la langue pour une colonne indexée

Lors de la création d'un index de recherche en texte intégral, nous vous recommandons de spécifier une langue pour chaque colonne indexée. Si tel n'est pas le cas, la langue par défaut du système est utilisée. La langue d'une colonne détermine l'analyseur lexical et le générateur de formes dérivées utilisés pour indexer cette colonne. En outre, le fichier de dictionnaire des synonymes de cette langue est utilisé par les requêtes de texte intégral sur la colonne.

Plusieurs aspects doivent être pris en considération pour le choix de la langue d'une colonne lors de la création d'un index de recherche en texte intégral. Ces aspects sont liés à la façon dont les unités lexicales de votre texte sont créées et à la façon dont ce texte est ensuite indexé par le Moteur d'indexation et de recherche en texte intégral. Pour plus d'informations, consultez Choisir une langue lors de la création d'un index de recherche en texte intégral.

Pour afficher la langue de l'analyseur lexical d'une colonne

Obtention d'informations sur les analyseurs lexicaux

Affichage du résultat de la segmentation du texte en unités lexicales d'une combinaison d'analyseur lexical, de dictionnaire des synonymes et de liste de mots vides

Pour retourner des informations sur les analyseurs lexicaux inscrits

Dépannage des erreurs de délai d'attente de l'analyse lexicale

Une erreur de délai d'attente lors de l'analyse lexicale peut se produire dans un grand nombre de situations. Pour plus d'informations sur ces situations et sur la façon de résoudre le problème correspondant, consultez MSSQLSERVER_30053.

Comprendre l'impact de nouveaux analyseurs lexicaux

Chaque version de SQL Server inclut généralement de nouveaux analyseurs lexicaux qui possèdent de meilleures règles linguistiques et sont plus précis que les anciens analyseurs lexicaux. Les nouveaux analyseurs lexicaux peuvent se comporter légèrement différemment des analyseurs lexicaux dans les index de recherche en texte intégral qui ont été importés à partir de versions précédentes de SQL Server. Cela est significatif si un catalogue de texte intégral a été importé lorsqu'une base de données a été mise à niveau vers la version actuelle de SQL Server. Une ou plusieurs langues utilisées par les index de recherche en texte intégral dans le catalogue de texte intégral peuvent maintenant être associées aux nouveaux analyseurs lexicaux. Pour plus d'informations, consultez Mettre à niveau la recherche en texte intégral à partir de SQL Server 2005.

Pour obtenir une liste complète de tous les analyseurs lexicaux, consultez sys.fulltext_languages (Transact-SQL).

Voir aussi

Référence

ALTER FULLTEXT INDEX (Transact-SQL)

CREATE FULLTEXT INDEX (Transact-SQL)

sp_fulltext_service (Transact-SQL)

sys.fulltext_languages (Transact-SQL)

Concepts

Configurer et gérer les mots vides et listes de mots vides pour la recherche en texte intégral

Mettre à niveau la recherche en texte intégral à partir de SQL Server 2005