Analyseurs lexicaux et générateurs de formes dérivées

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 des 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 Procédure : modifier la liste des analyseurs lexicaux et des filtres inscrits (Transact-SQL).

Plusieurs analyseurs lexicaux tiers sous licence sont livrés avec SQL Server 2008. Vous pouvez charger manuellement des analyseurs lexicaux tiers supplémentaires (et des générateurs de formes dérivées) pour plusieurs langues (danois, polonais et turc). Ces analyseurs lexicaux ne sont pas activés par défaut car ils appartiennent à un tiers qui n'a pas encore fourni les niveaux de test, sécurité et robustesse requis pour qu'ils le soient. Pour plus d'informations, consultez Procédure : charger des analyseurs lexicaux tiers sous licence.

Option Langue de texte intégral

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.

Pour plus d'informations, consultez Option 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 d'une langue lors de l'indexation de texte intégral d'une colonne

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 Méthodes conseillées pour le choix d'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

Impact des nouveaux analyseurs lexicaux dans SQL Server 2008

SQL Server 2008 fournit des analyseurs lexicaux pour plus de 50 langues, dont 23 existent également dans SQL Server 2005. Seuls les analyseurs lexicaux pour l'anglais, le coréen, le thaï et le chinois (traditionnel et simplifié) restent inchangés. Pour les autres langues, SQL Server 2008 propose une nouvelle génération d'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 SQL Server 2005 importés. Cela est significatif si un catalogue de texte intégral a été importé lorsqu'une base de données SQL Server 2005 a été mise à niveau vers SQL Server 2008. 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.

Versions des analyseurs lexicaux pour les langues prises en charge dans SQL Server 2005

Seuls les analyseurs lexicaux pour l'anglais, le coréen, le thaï et le chinois (traditionnel et simplifié) restent inchangés. Le tableau suivant répertorie les analyseurs lexicaux de SQL Server 2005 et indique s'ils ont été mis à jour dans SQL Server 2008. Pour une liste complète de les analyseurs lexicaux SQL Server 2008, consultez sys.fulltext_languages (Transact-SQL).

Notes

Les analyseurs lexicaux de la majorité des langues sont inscrits par défaut. Toutefois, plusieurs analyseurs lexicaux tiers sous licence sont désactivés par défaut. Pour des informations sur ces langues et l'inscription de ces analyseurs lexicaux, consultez Procédure : charger des analyseurs lexicaux tiers sous licence.

Langage

LCID

Analyseurs lexicaux

Brésilien

1046

Nouveau

Chinois (Hong Kong SAR, PRC)

3076

Inchangé

Chinois (Macau SAR)

5124

Inchangé

Chinois (Singapour)

4100

Inchangé

Danois (désactivé par défaut)

1030

Inchangé

Néerlandais

1043

Nouveau

Anglais

1033

Inchangé

Anglais (Royaume-Uni)

2057

Inchangé

Français

1036

Nouveau

Allemand

1031

Nouveau

Italien

1040

Nouveau

Japonais

1041

Nouveau

Coréen

1042

Inchangé

Neutre

0

Nouveau

Polonais (désactivé par défaut)

1045

Inchangé

Portugais

2070

Nouveau

Russe

1049

Nouveau

Chinois simplifié

2052

Inchangé

Espagnol

3082

Nouveau

Suédois

1053

Nouveau

Thaï

1054

Inchangé

Chinois traditionnel

1028

Inchangé

Turc (désactivé par défaut)

1055

Inchangé

Pour une liste complète des langues prises en charge, consultez sys.fulltext_languages (Transact-SQL).

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.

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