Sdílet prostřednictvím


Jazyky podporované službou Windows Search

Toto téma popisuje, jak Windows Search podporuje více jazyků.

Tokenizace, wordbreakery a jazykové prostředky

Windows Search je nezávislý na jazyce, ale přesnost vyhledávání v různých jazycích se může lišit vzhledem ke způsobu, jakým wordbreakery tokenizují text. Wordbreakery implementují různá pravidla tokenizace pro jazyky a rozdělují text na jednotlivé tokeny nebo slova, která se mají indexovat nebo prohledávat.

Jazyk indexovaného textu i řetězce dotazu jsou rozdělené na tokeny. Vzhledem k tomu, že se pravidla tokenizace liší podle jazyka, existují samostatné nástroje pro dělení slov pro každý jazyk nebo řadu jazyků. Pokud existuje neshoda mezi dotazovacím jazykem a indexovaným jazykem, může být výsledky nepředvídatelné.

Windows Search se dodává s dobře definovanou sadou wordbreakerů. Klasické součásti wordbreaker a stemmer jsou podporovány v systému Windows Vista a novější. Pokud jazyk dokumentu nelze určit, služba Windows Search se pokusí rozpoznat jazyk, aby identifikoval nejvhodnější funkci pro dělení slov. Služba Windows Search se pokusí zjistit jazyk voláním funkce GetSystemPreferredUILanguages k určení prvního jazyka MUI (Multiple User Interface) (což je obvykle jazyk systémového uživatelského rozhraní, pokud nejsou nainstalovány jazykové sady MUI). Pokud je volání úspěšné, použije se nástroj pro dělení slov pro první jazyk MUI. Pokud volání GetSystemPreferredUILanguages selže, Služba Windows Search načte systémové národní prostředí voláním GetSystemDefaultLCID funkce a použije funkci pro dělení slov přidružený k danému národnímu prostředí.

Pokud není pro jazyk nainstalovaný žádný wordbreaker, služba Windows Search se přeruší na prázdném místě pomocí nástroje Neutral wordbreaker.

Jazyk můžete odebrat prostřednictvím registru, jak je znázorněno v následujícím příkladu.

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

Spropitné

Pokud provedete změny v registru, restartujte službu Windows Search.

 

Když Windows Search vyžaduje nový modul pro dělení slov, přečte se identifikátor třídy (CLSID) a vytvoří se instance wordbreakeru v mezipaměti.

Vlastní wordbreaker pro jazyk můžete vytvořit implementací IWordBreaker rozhraní. Windows Search pak volá metody IWordBreaker při sestavování indexů obsahu a spouštění dotazů.

Informace o národním prostředí pro indexovaný obsah se načítají ze zdroje obsahu. Pokud implementátor zdroje nezná národní prostředí indexovaného obsahu, měl by národní prostředí nastavit na LOCALE_NEUTRAL.

Pokud například implementujete obslužnou rutinu filtru (implementaci rozhraní IFilter), obslužnou rutinu vlastnosti nebo obslužnou rutinu protokolu, měli byste nastavit národní prostředí pro indexovaný obsah tak, aby LOCALE_NEUTRAL, pokud nemáte konkrétní informace o národním prostředí a nejste si jistí jeho přesností.

Spropitné

Pokud je indexový dotaz založený na vstupu uživatele, národní prostředí by mělo odpovídat jazyku, ve kterém uživatel píše. Toto národní prostředí můžete určit voláním funkce GetKeyboardLayout.

 

Jazyky podporované aplikacemi Wordbreakers

Windows Search obsahuje nástroje pro dělení slov, které podporují následující jazyky.

Klíč registru Jazyk (podlanguage) LCID
Arabic_SaudiArabia Arabština (neutrální) 0x0001
Bengali_Default Bangla (neutrální) 0x0045
Bulgarian_Default Bulharština (Bulharsko) 0x0402
Catalan_Default Katalánština (katalánština) 0x0403
Chinese_HongKong Čínština (Hongkong – zvláštní správní oblast, ČLR) 0x0C04
Chinese_Simplified Čínština (zjednodušená) 0x0804
Chinese_Traditional Čínština (tradiční) 0x0404
Croatian_Default Chorvatština (Chorvatsko) 0x041A
Czech_Default Čeština (Česká republika) 0x0405
Danish_Default Dánština (Dánsko) 0x0406
Dutch_Dutch Holandština (Nizozemsko) 0x0413
English_UK Angličtina (Spojené království) 0x0809
English_US Angličtina (Spojené státy) 0x0409
Finnish_Default Finština (Finsko) 0x040B
French_French Francouzština (Francie) 0x040C
German_German Němčina (Německo) 0x0407
Greek_Default Řečtina (Řecko) 0x0408
Gujarati_Default Gudžarátí (Indie) 0x0447
Hebrew_Default Hebrejština (neutrální) 0x000D
Hindi_Default Hindština (Indie) 0x0439
Hungarian_Default Maďarština (Maďarsko) 0x040E
Icelandic_Default Islandština (Island) 0x040F
Indonesian_Default Indonéština (Indonésie) 0x0421
Italian_Italian Italština (Itálie) 0x0410
Japanese_Default Japonština (Japonsko) 0x0411
Kannada_Default Kannada (Indie) 0x044B
Korean_Default Korejština (Korea) 0x0412
Latvian_Default Lotyština (Lotyšsko) 0x0426
Lithuanian_Default Litevština (litevština) 0x0427
Malay_Malaysia Malajská (Malajsie) 0x043E
Malayalam_Default Malayalam (neutrální) 0x004C
Marathi_Default Marathi (Indie) 0x044E
Norwegian_Bokmal Norština (Bokmål, Norsko) 0x0414
Polish_Default Polština (Polsko) 0x0415
Portuguese_Portugal Portugalština (Portugalsko) 0x0816
Portuguese_Brazil Portugalština (Brazílie) 0x0416
Punjabi_Default Pažábí (Indie) 0x0446
Romanian_Default Rumunština (Rumunsko) 0x0418
Russian_Default Ruština (neutrální) 0x0019
Serbian_Cyrillic Srbština (Srbsko a Černá Hora, bývalá, cyrilice) 0x0C1A
Serbian_Latin Srbština (Srbsko a Černá Hora, bývalá, latinka) 0x081A
Slovak_Default Slovenština (Slovensko) 0x041B
Slovenian_Default Slovinština (Slovinsko) 0x0424
Spanish_Modern Španělština (Španělsko, moderní řazení) 0x0C0A
Swedish_Default Švédština (Švédsko) 0x041D
Tamil_Default Tamilština (Indie) 0x0449
Telugu_Default Telugu (Indie) 0x044A
Thai_Default Thajština (Thajsko) 0x041E
Turkish_Default Turečtina (Türkiye) 0x041F
Ukrainian_Default Ukrajinština (Ukrajina) 0x0422
Urdu_Default Urdu (Pákistán) 0x0420
Vietnamese_Default Vietnamština (Vietnam) 0x042A

 

Poznámka

Identifikátory LCI pro některé jazyky v tabulce se generují pomocí identifikátoru jazyka, identifikátoru dílčího jazyka a identifikátoru řazení.

 

Další informace o jazycích a přidružených identifikátorech naleznete v tématu Konstanty identifikátoru jazyka a řetězce.

Poznámka

Není zaručeno, že všechny tyto klíče registru jazyka budou k dispozici na jakémkoli daném počítači. V závislosti na uživatelském nastavení může nebo nemusí být v počítači nainstalovaný wordbreaker pro libovolný jazyk.

 

Počínaje Windows 8.1, preferovaný způsob použití wordbreakers je prostřednictvím rozhraní API WinRT WordsSegmenter třídy.

Další zdroje informací

Přehled služby Windows Search

Windows Search jako vývojové platformy

použití spravovaného kódu s daty prostředí a službou Windows Search