Partager via


Langues prises en charge par La recherche Windows

Cette rubrique décrit comment Windows Search prend en charge plusieurs langues.

Tokenization, Wordbreakers et ressources linguistiques

La recherche Windows est indépendante de la langue, mais la précision de la recherche entre les langues peut varier en raison de la façon dont les analyseurs de mots tokenisent du texte. Les analyseurs de mots implémentent différentes règles de jeton pour les langues et décomposent le texte en jetons individuels, ou mots, à indexer ou à rechercher.

La langue du texte indexé et la chaîne de requête sont divisées en jetons. Étant donné que les règles de jeton varient selon la langue, il existe des analyseurs de mots distincts pour chaque langue ou famille de langues. S’il existe une incompatibilité entre le langage de requête et la langue indexée, les résultats peuvent être imprévisibles.

Windows Search est fourni avec un ensemble bien défini de analyseurs de mots. Les composants de séparateur de mots et de générateur de formes dérivées classiques sont pris en charge dans Windows Vista et versions ultérieures. Si la langue d’un document ne peut pas être déterminée, Recherche Windows tente de détecter la langue pour identifier le séparateur de mots le plus approprié. Recherche Windows tente de détecter la langue en appelant la fonction GetSystemPreferredUILanguages pour déterminer la première langue MUI (Multiple User Interface) (qui est généralement la langue de l’interface utilisateur système, sauf si les modules linguistiques MUI sont installés). Si cet appel réussit, l’analyseur de mots pour la première langue MUI est utilisé. Si l’appel à GetSystemPreferredUILanguages échoue, Windows Search récupère les paramètres régionaux système en appelant la fonction GetSystemDefaultLCID et utilise le séparateur de mots associé à ces paramètres régionaux.

Si aucun analyseur de mots n’est installé pour une langue, Windows Search s’interrompt sur l’espace blanc à l’aide du analyseur de mots neutre.

Vous pouvez supprimer une langue dans le Registre, comme illustré dans l’exemple suivant.

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            ContentIndex
               Language
                  Dutch_Dutch
                     (Default)
                     Locale
                     NoiseFile
                     StemmerClass = CLSID
                     WBreakerClass = CLSID

Pourboire

Si vous apportez des modifications au Registre, redémarrez Windows Search.

 

Lorsque La recherche Windows nécessite un nouveau analyseur de mots, l’identificateur de classe (CLSID) est lu et l’analyseur de mots instancié est mis en cache.

Vous pouvez créer un analyseur de mots personnalisé pour une langue en implémentant l’interface IWordBreaker. Windows Search appelle ensuite les méthodes IWordBreaker lorsqu’elle génère des index de contenu et exécute des requêtes.

Les informations de paramètres régionaux pour le contenu indexé sont récupérées à partir de la source du contenu. Si l’implémenteur source ne connaît pas les paramètres régionaux du contenu indexé, il doit définir les paramètres régionaux sur LOCALE_NEUTRAL.

Par exemple, si vous implémentez un gestionnaire de filtres (implémentation de l’interface IFilter), gestionnaire de propriétés ou gestionnaire de protocole, vous devez définir les paramètres régionaux pour le contenu indexé sur LOCALE_NEUTRAL, sauf si vous avez des informations de paramètres régionaux spécifiques et que vous êtes sûr de sa précision.

Pourboire

Si une requête d’index est basée sur l’entrée utilisateur, les paramètres régionaux doivent correspondre à la langue dans laquelle l’utilisateur tape. Vous pouvez déterminer ces paramètres régionaux en appelant la fonction GetKeyboardLayout.

 

Langues prises en charge par les analyseurs Wordbreakers

Windows Search inclut des analyseurs de mots pour prendre en charge les langues suivantes.

Clé de Registre Langue (sous-langage) LCID
Arabic_SaudiArabia Arabe (neutre) 0x0001
Bengali_Default Bangla (neutre) 0x0045
Bulgarian_Default Bulgare (Bulgarie) 0x0402
Catalan_Default Catalan (catalan) 0x0403
Chinese_HongKong Chinois (Hong Kong SAR, PRC) 0x0C04
Chinese_Simplified Chinois (simplifié) 0x0804
Chinese_Traditional Chinois (traditionnel) 0x0404
Croatian_Default Croate (Croatie) 0x041A
Czech_Default Tchèque (République tchèque) 0x0405
Danish_Default Danois (Danemark) 0x0406
Dutch_Dutch Néerlandais (Pays-Bas) 0x0413
English_UK Anglais (Royaume-Uni) 0x0809
English_US Anglais (États-Unis) 0x0409
Finnish_Default Finnois (Finlande) 0x040B
French_French Français (France) 0x040C
German_German Allemand (Allemagne) 0x0407
Greek_Default Grec (Grèce) 0x0408
Gujarati_Default Gujarati (Inde) 0x0447
Hebrew_Default Hébreu (neutre) 0x000D
Hindi_Default Hindi (Inde) 0x0439
Hungarian_Default Hongrois (Hongrie) 0x040E
Icelandic_Default Islandais (Islande) 0x040F
Indonesian_Default Indonésien (Indonésie) 0x0421
Italian_Italian Italien (Italie) 0x0410
Japanese_Default Japonais (Japon) 0x0411
Kannada_Default Kannada (Inde) 0x044B
Korean_Default Coréen (Corée) 0x0412
Latvian_Default Letton (Lettonie) 0x0426
Lithuanian_Default Lituanien (Lituanien) 0x0427
Malay_Malaysia Malais (Malaisie) 0x043E
Malayalam_Default Malayalam (neutre) 0x004C
Marathi_Default Marathi (Inde) 0x044E
Norwegian_Bokmal Norvégien (Bokmål, Norvège) 0x0414
Polish_Default Polonais (Pologne) 0x0415
Portuguese_Portugal Portugais (Portugal) 0x0816
Portuguese_Brazil Portugais (Brésil) 0x0416
Punjabi_Default Punjabi (Inde) 0x0446
Romanian_Default Roumain (Roumanie) 0x0418
Russian_Default Russe (neutre) 0x0019
Serbian_Cyrillic Serbe (Serbie et Monténégro, ancien, cyrillique) 0x0C1A
Serbian_Latin Serbe (Serbie et Monténégro, Ancien, Latin) 0x081A
Slovak_Default Slovaque (Slovaquie) 0x041B
Slovenian_Default Slovène (Slovénie) 0x0424
Spanish_Modern Espagnol (Espagne, Sort moderne) 0x0C0A
Swedish_Default Suédois (Suède) 0x041D
Tamil_Default Tamoul (Inde) 0x0449
Telugu_Default Télougou (Inde) 0x044A
Thai_Default Thaï (Thaïlande) 0x041E
Turkish_Default Turc (Türkiye) 0x041F
Ukrainian_Default Ukrainien (Ukraine) 0x0422
Urdu_Default Urdu (Pakistan) 0x0420
Vietnamese_Default Vietnamien (Vietnam) 0x042A

 

Note

Les LCID pour certaines langues de la table sont générés à l’aide de l’identificateur de langue, de l’identificateur de sous-langue et de l’identificateur de tri.

 

Pour plus d’informations sur les langues et les identificateurs associés, consultez constantes et chaînes d’identificateur de langue.

Note

Il n’existe aucune garantie que toutes ces clés de Registre de langue seront présentes sur n’importe quel ordinateur donné. Le séparateur de mots pour une langue donnée peut ou non être installé sur l’ordinateur en fonction des paramètres utilisateur.

 

À partir de Windows 8.1, la méthode recommandée pour utiliser des analyseurs de mots consiste à utiliser l’API WinRT classe WordsSegmenter.

Ressources additionnelles

  • Pour plus d’informations sur la façon d’implémenter et d’utiliser des analyseurs de mots personnalisés et des générateurs de formes dérivées pour d’autres langues et paramètres régionaux, consultez Extension des ressources linguistiques dans Windows Search.
  • Si vous avez besoin d’identifier la langue d’un morceau de texte, vous pouvez utiliser la détection automatique de langue (LAD), qui est disponible dans Windows 7 et versions ultérieures. Pour plus d’informations, consultez services linguistiques étendus (ELS).
  • Pour plus d’informations sur la gestion, l’interrogation et l’extension de l’index, consultez le Guide du développeur Windows Search.

Vue d’ensemble de Recherche Windows

Recherche Windows en tant que plateforme de développement

utilisation de code managé avec des données Shell et des Windows Search