Udostępnij za pośrednictwem


Języki obsługiwane przez usługę Windows Search

W tym temacie opisano, jak usługa Windows Search obsługuje wiele języków.

Tokenizacja, wordbreakers i zasoby językowe

Usługa Windows Search jest niezależna od języka, ale dokładność wyszukiwania w różnych językach może się różnić ze względu na sposób tokenizowania tekstu przez narzędzia wordbreakers. Moduły dzielenia wyrazów implementują różne reguły tokenizacji dla języków i dzielą tekst na poszczególne tokeny lub wyrazy, które mają być indeksowane lub wyszukiwane.

Zarówno język indeksowanego tekstu, jak i ciąg zapytania są podzielone na tokeny. Ponieważ reguły tokenizacji różnią się w zależności od języka, istnieją oddzielne edytory wyrazów dla każdego języka lub rodziny języków. Jeśli istnieje niezgodność między językiem zapytań a indeksowanym językiem, wyniki mogą być nieprzewidywalne.

Usługa Windows Search jest dostarczana z dobrze zdefiniowanym zestawem wordbreakers. Klasyczne składniki programu wordbreaker i stemmer są obsługiwane w systemie Windows Vista i nowszych wersjach. Jeśli nie można określić języka dokumentu, usługa Windows Search próbuje wykryć język w celu zidentyfikowania najbardziej odpowiedniego edytora wyrazów. Usługa Windows Search próbuje wykryć język, wywołując GetSystemPreferredUILanguages funkcji w celu określenia pierwszego języka interfejsu użytkownika (MUI) (zazwyczaj jest to język interfejsu użytkownika systemu, chyba że zainstalowano pakiety językowe MUI). Jeśli to wywołanie powiedzie się, zostanie użyty edytor wyrazów dla pierwszego języka MUI. Jeśli wywołanie metody GetSystemPreferredUILanguages zakończy się niepowodzeniem, usługa Windows Search pobierze ustawienia regionalne systemu, wywołując funkcję GetSystemDefaultLCID i używa narzędzia wordbreaker skojarzonego z tym ustawieniami regionalnymi.

Jeśli dla języka nie zainstalowano narzędzia wordbreaker, usługa Windows Search przerywa odstępy przy użyciu narzędzia Neutral wordbreaker.

Język można usunąć za pomocą rejestru, jak pokazano w poniższym przykładzie.

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

Napiwek

Jeśli wprowadzisz zmiany w rejestrze, uruchom ponownie usługę Windows Search.

 

Gdy usługa Windows Search wymaga nowego narzędzia do łamania wyrazów, identyfikator klasy (CLSID) jest odczytywany, a tworzone wystąpienie narzędzia wordbreaker jest buforowane.

Niestandardowy edytor wyrazów dla języka można utworzyć, implementując interfejs IWordBreaker. Usługa Windows Search wywołuje następnie metody IWordBreaker podczas tworzenia indeksów zawartości i uruchamiania zapytań.

Informacje o ustawieniach regionalnych dla indeksowanej zawartości są pobierane ze źródła zawartości. Jeśli implementacja źródłowa nie zna ustawień regionalnych indeksowanej zawartości, powinna ustawić ustawienia regionalne na wartość LOCALE_NEUTRAL.

Jeśli na przykład implementujesz program obsługi filtrów (implementacja interfejsu IFilter), program obsługi właściwości lub program obsługi protokołu, należy ustawić ustawienia regionalne dla indeksowanej zawartości na LOCALE_NEUTRAL, chyba że masz określone informacje regionalne i są pewni jego dokładności.

Napiwek

Jeśli zapytanie indeksu jest oparte na danych wejściowych użytkownika, ustawienia regionalne powinny być zgodne z językiem, w którym użytkownik wpisuje. Ustawienia regionalne można określić, wywołując funkcję GetKeyboardLayout.

 

Języki obsługiwane przez program wordbreakers

Usługa Windows Search zawiera edytory wyrazów do obsługi następujących języków.

Klucz rejestru Język (podjęzyczność) Identyfikator LCID
Arabic_SaudiArabia Arabski (neutralny) 0x0001
Bengali_Default Bangla (neutralna) 0x0045
Bulgarian_Default Bułgarski (Bułgaria) 0x0402
Catalan_Default Kataloński (kataloński) 0x0403
Chinese_HongKong Chiński (Hongkong SAR, CHRL) 0x0C04
Chinese_Simplified Chiński (uproszczony) 0x0804
Chinese_Traditional Chiński (tradycyjny) 0x0404
Croatian_Default Chorwacki (Chorwacja) 0x041A
Czech_Default Czechy (Czechy) 0x0405
Danish_Default Duński (Dania) 0x0406
Dutch_Dutch Holenderski (Holandia) 0x0413
English_UK Angielski (Wielka Brytania) 0x0809
English_US Angielski (Stany Zjednoczone) 0x0409
Finnish_Default Fiński (Finlandia) 0x040B
French_French Francuski (Francja) 0x040C
German_German Niemiecki (Niemcy) 0x0407
Greek_Default Grecki (Grecja) 0x0408
Gujarati_Default Gujarati (Indie) 0x0447
Hebrew_Default Hebrajski (neutralny) 0x000D
Hindi_Default Hindi (Indie) 0x0439
Hungarian_Default Węgierski (Węgry) 0x040E
Icelandic_Default Islandia (Islandia) 0x040F
Indonesian_Default Indonezyjski (Indonezja) 0x0421
Italian_Italian Włoski (Włochy) 0x0410
Japanese_Default Japoński (Japonia) 0x0411
Kannada_Default Kannada (Indie) 0x044B
Korean_Default Koreański (Korea) 0x0412
Latvian_Default Łotewski (Łotewski) 0x0426
Lithuanian_Default Litewski (litewski) 0x0427
Malay_Malaysia Malajski (Malezja) 0x043E
Malayalam_Default Malayalam (neutralny) 0x004C
Marathi_Default Marathi (Indie) 0x044E
Norwegian_Bokmal Norweski (Bokmål, Norwegia) 0x0414
Polish_Default Polski (Polska) 0x0415
Portuguese_Portugal Portugalski (Portugalia) 0x0816
Portuguese_Brazil Portugalski (Brazylia) 0x0416
Punjabi_Default Pendżabi (Indie) 0x0446
Romanian_Default Rumuński (Rumunia) 0x0418
Russian_Default Rosyjski (neutralny) 0x0019
Serbian_Cyrillic Serbski (Serbia i Czarnogóra, były, cyrylica) 0x0C1A
Serbian_Latin Serbski (Serbia i Czarnogóra, były, łaciński) 0x081A
Slovak_Default Słowacki (Słowacja) 0x041B
Slovenian_Default Słowenia (Słowenia) 0x0424
Spanish_Modern Hiszpański (Hiszpania, Nowoczesny sort) 0x0C0A
Swedish_Default Szwedzki (Szwecja) 0x041D
Tamil_Default Tamil (Indie) 0x0449
Telugu_Default Telugu (Indie) 0x044A
Thai_Default Tajski (Tajlandia) 0x041E
Turkish_Default Turecki (Türkiye) 0x041F
Ukrainian_Default Ukraiński (Ukraina) 0x0422
Urdu_Default Urdu (Pakistan) 0x0420
Vietnamese_Default Wietnamski (Wietnam) 0x042A

 

Nuta

Identyfikatory LCID dla niektórych języków w tabeli są generowane przy użyciu identyfikatora języka, identyfikatora podrzędnego i identyfikatora sortowania.

 

Aby uzyskać więcej informacji na temat języków i skojarzonych identyfikatorów, zobacz stałe identyfikatora języka i ciągi.

Nuta

Nie ma gwarancji, że wszystkie te klucze rejestru języka będą obecne na każdej maszynie. Edytor wyrazów dla danego języka może być zainstalowany na maszynie lub nie może być zainstalowany w zależności od ustawień użytkownika.

 

Począwszy od systemu Windows 8.1, preferowanym sposobem korzystania z narzędzi wordbreakers jest użycie interfejsu API WinRT WordsSegmenter klasy.

Dodatkowe zasoby

Windows Search — omówienie

Windows Search jako platformy programistycznej

używanie kodu zarządzanego z danymi powłoki i usługą Windows Search