Considérations internationales relatives à la recherche de texte intégral
Choix d'une langue lors de la création d'un index de texte intégral
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 texte intégral. Ces aspects sont liés à la façon dont les jetons de votre texte sont créés et à la façon dont ce texte est ensuite indexé par le service du moteur de texte intégral Microsoft pour SQL Server (MSFTESQL). Un séparateur de mots crée des jetons dans le texte indexé à partir des limites des mots. Dans une langue comme le français ou l'anglais, les limites des mots sont généralement fixées par des espaces blancs ou une ponctuation. Dans d'autres langues, par exemple l'allemand, les mots ou les caractères peuvent être accolés ; par conséquent, le choix de la langue d'une colonne doit être représentatif de la langue destinée à être stockée dans les lignes de cette colonne. En cas de doute, il est préférable de recourir à un séparateur de mots neutre qui crée ses jetons uniquement à partir des espaces blancs et d'une ponctuation. Un autre avantage lié au choix approprié de la langue de votre colonne est celui de l'« identification de la racine ». L'identification de la racine dans les requêtes de texte intégral se définit comme la recherche de toutes les formes fléchies d'un mot dans une langue particulière.
Une autre considération sur le choix de la langue est liée au mode de représentation des données. Pour les données non stockées dans une colonne varbinary(max), aucun filtrage particulier n'est effectué. À la place, le texte est généralement traité tel quel par le composant de séparation des mots. Les séparateurs de mots sont principalement conçus pour traiter le texte écrit. Par conséquent, si votre texte contient un balisage quelconque (par exemple du code HTML), vous risquez de ne pas obtenir une précision linguistique importante durant l'indexation et la recherche. Dans ce cas, vous avez deux possibilités : la méthode recommandée consiste simplement à stocker les données de texte dans la colonne varbinary(max) et à indiquer le type de document correspondant pour permettre un filtrage. Si ce choix ne vous convient pas, utilisez un séparateur de mots neutre et, si possible, ajoutez les données de balisage (par exemple « br » en langage HTML) à vos listes de mots non significatifs.
Remarque : |
---|
L'identification de la racine linguistique n'intervient pas lorsque vous spécifiez la langue neutre. |
Prise en charge de la langue
Dans Microsoft SQL Server 2005, les requêtes de texte intégral peuvent utiliser d'autres langues que la langue par défaut pour la colonne de recherche des données de texte intégral. Tant que la langue est prise en charge et que ses ressources sont installées, la langue spécifiée dans la clause LANGUAGE language_term
de la requête CONTAINS, CONTAINSTABLE, FREETEXT ou FREETEXTTABLE est utilisée pour la séparation des mots, l'identification de la racine, le dictionnaire des synonymes et le traitement des mots non significatifs.
Le tableau ci-dessous indique la langue dans laquelle les données de l'index de texte intégral sont stockées. La langue est basée sur l'identificateur de paramètres régionaux pour le classement Unicode, sélectionné lors de l'installation de Microsoft SQL Server.
Identificateur de paramètres régionaux pour le classement Unicode | Langage de stockage des données en texte intégral |
---|---|
Chinois Bopomofo (Taïwan) |
Chinois traditionnel |
Ponctuation chinoise |
Chinois simplifié |
Compte de traits chinois |
Chinois simplifié |
Compte de traits chinois (Taiwan) |
Chinois traditionnel |
Néerlandais |
Néerlandais |
Anglais UK |
Anglais UK |
Français |
Français |
Unicode général |
Anglais US |
Allemand |
Allemand |
Annuaire allemand |
Allemand |
Italien |
Italien |
Japonais |
Japonais |
Unicode japonais |
Japonais |
Coréen |
Coréen |
Unicode coréen |
Coréen |
Espagnol (Espagne) |
Espagnol |
Suédois/Finnois |
Suédois |
Toutes les autres valeurs des identificateurs de paramètres régionaux pour le classement Unicode qui ne figurent pas dans cette liste sont mappées au séparateur de mots et à l'identificateur de racine de la langue neutre, laquelle utilise des espaces blancs pour délimiter les mots.
Remarque : |
---|
L'identificateur de paramètres régionaux pour le classement Unicode est défini pour tous les types de données pouvant faire l'objet d'une indexation de texte intégral (par exemple char, nchar, etc.). Si l'ordre de tri d'une colonne de type char, varchar ou text est défini à l'aide d'une langue différente de la langue de l'identificateur de paramètres régionaux pour le classement Unicode, ce dernier est néanmoins utilisé durant l'indexation de texte intégral et l'interrogation des colonnes de type char, varchar ou text. |
Voir aussi
Autres ressources
Concepts de la recherche de texte intégral
Types de données (Transact-SQL)
CONTAINS (Transact-SQL)
CONTAINSTABLE (Transact-SQL)
FREETEXT (Transact-SQL)
FREETEXTTABLE (Transact-SQL)