Configuration du dictionnaire des synonymes

Dans SQL Server, les requêtes de texte intégral peuvent rechercher les synonymes des termes spécifiés par l'utilisateur grâce à un dictionnaire des synonymes. Un dictionnaire des synonymes SQL Server définit un jeu de synonymes pour une langue spécifique. Les administrateurs système peuvent définir deux formes de synonymes : les jeux d'expansion et les jeux de remplacement. En développant un dictionnaire des synonymes adapté à vos données de texte intégral, vous pouvez élargir efficacement l'étendue des requêtes de texte intégral sur ces données. La mise en correspondance avec le dictionnaire des synonymes intervient uniquement pour les requêtes CONTAINS et CONTAINSTABLE qui spécifient la clause FORMSOF THESAURUS et pour les requêtes FREETEXT et FREETEXTABLE.

Pour que vos requêtes de recherche en texte intégral sur votre instance de serveur puissent rechercher les synonymes dans une langue donnée, vous devez au préalable définir des mappages de dictionnaire des synonymes pour cette langue. Chaque dictionnaire des synonymes doit être configuré manuellement de façon à définir les éléments suivants :

  • Paramètre de signes diacritiques

    Pour un dictionnaire des synonymes donné, tous les modèles de recherche respectent ou non les signes diacritiques, par exemple le tilde (~), l'accent aigu (´) ou le tréma (¨), autrement dit, ils respectent les accents ou ne respectent pas les accents. Par exemple, supposez que vous spécifiez le remplacement du modèle « café » par d'autres modèles dans une requête de texte intégral. Si le dictionnaire des synonymes ne tient pas compte des accents, la recherche en texte intégral remplace les modèles « café » et « cafe ». Si le dictionnaire des synonymes tient compte des accents, la recherche en texte intégral remplace seulement le modèle « café ». Par défaut, un dictionnaire des synonymes ne tient pas compte des accents.

    Notes

    Pour plus d'informations sur les signes diacritiques, consultez diacritique, signe dans l'encyclopédie Encarta MSN.

  • Jeu d'expansion

    Un jeu d'expansion contient un groupe de synonymes, tels que « writer », « author » et « journalist », qui sont substitués les uns aux autres par une requête de texte intégral. Les requêtes qui contiennent une correspondance pour un synonyme dans un jeu d'expansion sont développées de manière à inclure tous les autres synonymes du jeu d'expansion.

    Pour plus d'informations, consultez « Structure XML d'un jeu d'expansion », plus loin dans cette rubrique.

  • Jeu de remplacement

    Un jeu de remplacement contient un modèle de texte à remplacer par un jeu de substitution. Reportez-vous à l'exemple de la section « Structure XML d'un jeu de remplacement », plus loin dans cette rubrique.

Notes

Pour connaître les restrictions et recommandations applicables à un fichier de dictionnaire des synonymes, consultez Procédure : modifier un fichier de dictionnaire des synonymes (recherche en texte intégral).

SQL Server fournit un fichier de dictionnaire des synonymes XML par langue prise en charge. Ces fichiers sont essentiellement vides. Ils contiennent uniquement la structure XML de niveau supérieur commune à tous les dictionnaires des synonymes SQL Server et un exemple commenté de dictionnaire des synonymes.

Cette rubrique s'articule autour des informations suivantes, qui vous aideront à accomplir cette tâche :

  • Contenu initial des fichiers de dictionnaires des synonymes

  • Emplacement des fichiers de dictionnaires des synonymes

  • Utilisation par les requêtes des fichiers de dictionnaires des synonymes

  • Présentation de la structure d'un fichier de dictionnaire des synonymes

  • Utilisation des fichiers des dictionnaires des synonymes

Contenu initial des fichiers des dictionnaires des synonymes

Les fichiers des dictionnaires des synonymes fournis avec SQL Server 2008 contiennent tous le code XML suivant :

<XML ID="Microsoft Search Thesaurus">

<!--  Commented out

    <thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
        <expansion>
            <sub>Internet Explorer</sub>
            <sub>IE</sub>
            <sub>IE5</sub>
        </expansion>
        <replacement>
            <pat>NT5</pat>
            <pat>W2K</pat>
            <sub>Windows 2000</sub>
        </replacement>
        <expansion>
            <sub>run</sub>
            <sub>jog</sub>
        </expansion>
    </thesaurus>
-->
</XML>

[Haut de la page]

Emplacement des fichiers des dictionnaires des synonymes

L'emplacement par défaut des fichiers de dictionnaires des synonymes est :

<SQL_Server_data_files_path>\MSSQL10_50.MSSQLSERVER\MSSQL\FTDATA\

Cet emplacement par défaut contient les fichiers suivants :

  • Fichiers de dictionnaires des synonymes spécifiques à chaque langue

    Pendant l'installation, les fichiers des dictionnaires des synonymes vides sont installés à l'emplacement précité. Un fichier distinct est fourni pour chaque langue prise en charge. Ces fichiers peuvent être personnalisés par un administrateur système.

    Les noms de fichier par défaut des fichiers des dictionnaires des synonymes utilisent le format suivant :

    « ts » + <abréviation en trois lettres de la langue> + « .xml »

    Le nom du fichier du dictionnaire des synonymes d'une langue donnée est spécifié dans le Registre, dans la valeur HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<nom-instance>\MSSearch\<abréviation-langue>.

  • Fichier du dictionnaire des synonymes global

    Un fichier de dictionnaire des synonymes global vide, tsGlobal.xml.

Vous pouvez modifier l'emplacement et le nom d'un fichier de dictionnaire des synonymes en modifiant sa clé de Registre. Pour chaque langue, l'emplacement du fichier de dictionnaire des synonymes est spécifié dans la valeur de Registre suivante :

HKLM/SOFTWARE/Microsoft/Microsoft SQL Server/<nom de l'instance>/MSSearch/Language/<abréviation-langue>/TsaurusFile

Le fichier du dictionnaire des synonymes global correspond à la langue « neutre », avec le LCID 0. Cette valeur ne peut être modifiée que par des administrateurs.

[Haut de la page]

Utilisation par les requêtes des fichiers de dictionnaires des synonymes

Une requête de dictionnaire des synonymes utilise à la fois le dictionnaire des synonymes spécifique à la langue et le dictionnaire des synonymes global. En premier lieu, la requête recherche le fichier spécifique à la langue et le charge en vue du traitement (à moins qu'il ne soit déjà chargé). La requête est développée pour inclure les synonymes spécifiques à la langue spécifiés par les règles de jeu d'expansion et de jeu de remplacement définies dans le fichier du dictionnaire des synonymes. Ces étapes sont ensuite répétées pour le dictionnaire des synonymes global. Toutefois, si un terme fait déjà partie d'une correspondance dans le fichier du dictionnaire des synonymes spécifique à la langue, ce terme est inéligible pour la mise en correspondance dans le dictionnaire des synonymes global.

[Haut de la page]

Présentation de la structure d'un fichier de dictionnaire des synonymes

Chaque fichier de dictionnaire des synonymes définit un conteneur XML dont l'ID est Microsoft Search Thesaurus et un commentaire, <!--. -->, qui contient un exemple de dictionnaire des synonymes. Le dictionnaire des synonymes est défini dans un élément <thesaurus> qui contient des exemples des éléments enfants qui définissent le paramètre de signes diacritiques, les jeux d'expansion et les jeux de remplacement, comme illustré ci-dessous.

  • Structure XML du paramètre de signes diacritiques

    Le paramètre de signes diacritiques d'un dictionnaire des synonymes est spécifié dans un élément <diacritics_sensitive> unique. Cet élément contient une valeur entière qui contrôle le respect des accents, comme suit :

    Paramètre de signes diacritiques

    Valeur

    XML

    Non-respect des accents

    0

    <diacritics_sensitive>0</diacritics_sensitive>

    Respecter les accents

    1

    <diacritics_sensitive>1</diacritics_sensitive>

    Notes

    Ce paramètre ne peut être appliqué qu'une seule fois dans le fichier et s'applique à tous les modèles de recherche au sein du fichier. Vous ne pouvez pas définir ce paramètre pour des modèles individuels.

  • Structure XML d'un ensemble d'expansion

    Chaque jeu d'expansion est compris dans un élément <expansion>. Dans cet élément, vous spécifiez une ou plusieurs substitutions dans un élément <sub>. Dans le jeu d'expansion, vous pouvez spécifier un groupe de substitutions synonymes les unes des autres.

    Par exemple, vous pouvez modifier la section d'expansion pour traiter les substitutions « writer », « author » et « journalist » comme synonymes. Les requêtes de recherche en texte intégral qui contiennent des correspondances dans une substitution sont développées de façon à inclure toutes les autres substitutions spécifiées dans le jeu d'expansion. Par conséquent, dans l'exemple précédent, lorsque vous émettez une requête FORMS OF THESAURUS ou FREETEXT pour le mot « author », la recherche en texte intégral renvoie également les résultats contenant les mots « writer » et « journalist ».

    Voici à quoi ressemble la section du jeu d'expansion pour l'exemple ci-dessus :

     <expansion>
             <sub>writer</sub>
             <sub>author</sub>
             <sub>journalist</sub>
     </expansion>
    
  • Structure XML d'un jeu de remplacement

    Chaque jeu de remplacement est compris dans un élément <replacement>. Dans cet élément, vous pouvez spécifier un ou plusieurs modèles dans un élément <pat> et zéro, une ou plusieurs substitutions dans des éléments <sub>, à raison d'un par synonyme. Vous pouvez spécifier un modèle de texte à remplacer par un jeu de substitution. Les modèles et les substitutions peuvent contenir un mot ou une suite de mots. L'absence de spécification d'une substitution pour un modèle a pour effet de supprimer le modèle de la requête de l'utilisateur.

    Par exemple, supposons que vous souhaitez remplacer les requêtes portant sur « W2K », le modèle, par « Windows 2000 » ou « XP », les substitutions. Si vous exécutez une requête de texte intégral pour « W2K », la recherche en texte intégral renvoie seulement les résultats contenant « Windows 2000 » ou « XP ». Elle ne renvoie pas les résultats contenant « W2K ». Cela est dû au fait que le motif « W2K » a été « remplacé » par les motifs « Windows 2000 » et « XP ».

    Voici à quoi ressemble la section du jeu de remplacement pour l'exemple ci-dessus :

     <replacement>
             <pat>W2K</pat>
             <sub>Windows 2000</sub>
             <sub>XP</sub>
     </replacement>
    

    Si deux jeux de remplacement contiennent des motifs similaires en correspondance, le plus long des deux a priorité. Par exemple, si vous exécutez une requête FORMS OF THESAURUS pour « Internet Explorer online community » avec les jeux de remplacement suivants, le jeu de remplacement « Internet Explorer » est prioritaire par rapport au jeu de remplacement « Internet ». La requête sera donc traitée comme « IE online community » ou « IE 5 online community ».

    <replacement>
             <pat>Internet</pat>
             <sub>intranet</sub>
    </replacement>
    

    et

    <replacement>
             <pat>Internet Explorer</pat>
             <sub>IE</sub>
             <sub>IE 5</sub>
    </replacement>
    

[Haut de la page]

Utilisation des fichiers des dictionnaires des synonymes

Pour modifier un fichier de dictionnaire des synonymes

Pour charger un fichier de dictionnaire des synonymes mis à jour

Pour afficher le 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