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.

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 et fichiers de dictionnaire des synonymes) deviennent également disponibles pour les opérations d’indexation et d’interrogation de texte intégral. Pour afficher 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

Pour une version localisée de SQL Server, SQL Server programme d’installation définit l’option default full-text language sur la langue du serveur si une correspondance appropriée existe. Pour une version non localisée de SQL Server, l’option default full-text language est l’anglais.

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.

Notes

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 ont de meilleures règles linguistiques et sont plus précis que les analyseurs lexicaux antérieurs. Potentiellement, 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 antérieures 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 Mise à niveau de la fonction de recherche en texte intégral.

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

Voir aussi

ALTER FULLTEXT INDEX (Transact-SQL)
CREATE FULLTEXT INDEX (Transact-SQL)
sp_fulltext_service (Transact-SQL)
sys.fulltext_languages (Transact-SQL)
Configurer et gérer les mots vides et listes de mots vides pour la recherche en texte intégral
Mise à niveau de la fonction de recherche en texte intégral