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í
- Informace o tom, jak implementovat a používat vlastní nástroje pro dělení slov a stemmery pro další jazyky a národní prostředí, naleznete v tématu rozšíření jazykových prostředků ve Službě Windows Search.
- Pokud potřebujete identifikovat jazyk části textu, můžete použít funkci Automatické rozpoznávání jazyka (LAD), která je dostupná ve Windows 7 a novějších verzích. Další informace najdete v tématu rozšířené jazykové služby (ELS).
- Informace o správě, dotazování a rozšiřování indexu najdete v Příručka pro vývojáře windows Search.
Související témata