Partager via


Langues prises en charge par Recherche Windows

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

Tokenisation, séparateurs de mots et ressources de langage

La recherche Windows est indépendante de la langue, mais la précision de la recherche dans plusieurs langues peut varier en raison de la façon dont les analyseurs de mots jetons jetons du texte. Les analyseurs de mots implémentent différentes règles de création de jetons 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 création de jetons varient selon la langue, il existe des séparateurs de mots distincts pour chaque langue ou famille de langues. En cas d’incompatibilité entre la langue 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 séparateurs 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 d’interface utilisateur multiple (MUI) (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 de la première langue MUI est utilisé. Si l’appel à GetSystemPreferredUILanguages échoue, Recherche Windows 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 séparateur de mots n’est installé pour une langue, Windows Search s’interrompt sur les espaces blancs à l’aide du séparateur de mots Neutre .

Vous pouvez supprimer une langue via 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

Conseil

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

 

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

Vous pouvez créer un séparateur 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 filtre (une implémentation de l’interface IFilter ), un gestionnaire de propriétés ou un gestionnaire de protocole, vous devez définir les paramètres régionaux du contenu indexé sur LOCALE_NEUTRAL , sauf si vous disposez d’informations de paramètres régionaux spécifiques et que vous êtes sûr de sa précision.

Conseil

Si une requête d’index est basée sur une 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 séparateurs de mots

Recherche Windows inclut des séparateurs 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 (Catalogne) 0x0403
Chinese_HongKong Chinois (Hong Kong R.A.S., RPC) 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
Français_Français Français (France) 0x040C
German_German Allemand (Allemagne) 0x0407
Greek_Default Grec (Grèce) 0x0408
Gujarati_Default Goudjrati (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 Pendjabi (Inde) 0x0446
Romanian_Default Roumain (Roumanie) 0x0418
Russian_Default Russe (Neutre) 0x0019
Serbe (cyrillique) Serbe (Serbie-et-Monténégro, ancien, cyrillique) 0x0C1A
Serbe (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, Modern Sort) 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 (Turquie) 0x041F
Ukrainian_Default Ukrainien (Ukraine) 0x0422
Urdu_Default Ourdou (Pakistan) 0x0420
Vietnamese_Default Vietnamien (Vietnam) 0x042A

 

Notes

Les LCID pour certaines langues de la table sont générées à l’aide de l’identificateur de langue, de l’identificateur de sous-langage 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.

Notes

Il n’est pas garanti que toutes ces clés de registre de langage soient présentes sur une machine donnée. Le wordbreaker pour une langue donnée peut ou non être installé sur l’ordinateur en fonction des paramètres utilisateur.

 

À compter de Windows 8.1, la méthode recommandée pour utiliser les analyseurs de mots est par le biais de la classe WordSegmenter de l’API WinRT.

Ressources supplémentaires

Vue d’ensemble de Windows Search

Windows Search en tant que plateforme de développement

Utilisation de code managé avec Shell Data et Windows Search