Von Windows Search unterstützte Sprachen

In diesem Thema wird beschrieben, wie Windows Search mehrere Sprachen unterstützt.

Tokenisierung, Wordbreaker und Sprachressourcen

Windows Search ist sprachunabhängig, aber die Genauigkeit der Suche zwischen den Sprachen kann aufgrund der Art und Weise variieren, wie Wordbreaker Text tokenisieren. Wordbreaker implementieren verschiedene Tokenisierungsregeln für Sprachen und unterteilen Text in einzelne Token oder Wörter, die indiziert oder durchsucht werden sollen.

Sowohl die Sprache des indizierten Texts als auch die Abfragezeichenfolge sind in Token unterteilt. Da Tokenisierungsregeln je nach Sprache variieren, gibt es separate Wortbrecher für jede Sprache oder Sprachfamilie. Wenn zwischen der Abfragesprache und der indizierten Sprache ein Konflikt besteht, können die Ergebnisse unvorhersehbar sein.

Windows Search wird mit einem klar definierten Satz von Wortbrechern ausgeliefert. Klassische Wordbreaker- und Stemmerkomponenten werden in Windows Vista und höher unterstützt. Wenn die Sprache eines Dokuments nicht bestimmt werden kann, versucht Windows Search, die Sprache zu erkennen, um den am besten geeigneten Wordbreaker zu identifizieren. Windows Search versucht, die Sprache zu erkennen, indem die GetSystemPreferredUILanguages-Funktion aufgerufen wird, um die erste MUI-Sprache (Multiple User Interface) zu bestimmen (die in der Regel die Sprache der Systembenutzeroberfläche ist, es sei denn, MUI-Sprachpakete sind installiert). Wenn dieser Aufruf erfolgreich ist, wird der Wortbrecher für die erste MUI-Sprache verwendet. Wenn der Aufruf von GetSystemPreferredUILanguages fehlschlägt, ruft Windows Search das Systemgebietsschema ab, indem die GetSystemDefaultLCID-Funktion aufgerufen wird, und verwendet den diesem Gebietsschema zugeordneten Wordbreaker.

Wenn kein Wordbreaker für eine Sprache installiert ist, unterbricht Windows Search den Leerraum mithilfe des Wordbreakers Neutral .

Sie können eine Sprache über die Registrierung entfernen, wie im folgenden Beispiel veranschaulicht.

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

Tipp

Wenn Sie Änderungen an der Registrierung vornehmen, starten Sie Windows Search neu.

 

Wenn Windows Search einen neuen Wordbreaker erfordert, wird der Klassenbezeichner (CLSID) gelesen, und der instanziierte Wordbreaker wird zwischengespeichert.

Sie können einen benutzerdefinierten Wordbreaker für eine Sprache erstellen, indem Sie die IWordBreaker-Schnittstelle implementieren. Windows Search ruft dann die IWordBreaker-Methoden auf, wenn Inhaltsindizes erstellt und Abfragen ausgeführt werden.

Gebietsschemainformationen für indizierte Inhalte werden aus der Quelle des Inhalts abgerufen. Wenn der Quellimplementierer das Gebietsschema des indizierten Inhalts nicht kennt, sollte er das Gebietsschema auf LOCALE_NEUTRAL festlegen.

Wenn Sie beispielsweise einen Filterhandler (eine Implementierung der IFilter-Schnittstelle ), Eigenschaftenhandler oder Protokollhandler implementieren, sollten Sie das Gebietsschema für indizierten Inhalt auf LOCALE_NEUTRAL festlegen, es sei denn, Sie verfügen über bestimmte Gebietsschemainformationen und sind sich dessen Genauigkeit sicher.

Tipp

Wenn eine Indexabfrage auf der Benutzereingabe basiert, sollte das Gebietsschema mit der Sprache übereinstimmen, in der der Benutzer eingabet. Sie können dieses Gebietsschema bestimmen, indem Sie die GetKeyboardLayout-Funktion aufrufen.

 

Von Wordbreakern unterstützte Sprachen

Windows Search enthält Wordbreaker zur Unterstützung der folgenden Sprachen.

Registrierungsschlüssel Sprache (Untersprache) LCID
Arabic_SaudiArabia Arabisch (Neutral) 0x0001
Bengali_Default Bangla (Neutral) 0x0045
Bulgarian_Default Bulgarisch (Bulgarien) 0x0402
Catalan_Default Katalanisch (Katalanisch) 0x0403
Chinese_HongKong Chinesisch (Hongkong SAR, VR China) 0x0C04
Chinese_Simplified Chinesisch (vereinfacht) 0x0804
Chinese_Traditional Chinesisch (traditionell) 0x0404
Croatian_Default Kroatisch (Kroatien) 0x041A
Czech_Default Tschechisch (Tschechische Republik) 0x0405
Danish_Default Dänisch (Dänemark) 0x0406
Dutch_Dutch Niederländisch (Niederlande) 0x0413
English_UK Walisisch (Großbritannien) 0x0809
English_US Englisch (USA) 0x0409
Finnish_Default Finnisch (Finnland) 0x040B
French_French Französisch (Frankreich) 0x040C
German_German Deutsch (Deutschland) 0x0407
Greek_Default Griechisch (Griechenland) 0x0408
Gujarati_Default Gujarati (Indien) 0x0447
Hebrew_Default Hebräisch (Neutral) 0x000D
Hindi_Default Hindi (Indien) 0x0439
Hungarian_Default Ungarisch (Ungarn) 0x040E
Icelandic_Default Isländisch (Island) 0x040F
Indonesian_Default Indonesisch (Indonesien) 0x0421
Italian_Italian Italienisch (Italien) 0x0410
Japanese_Default Japanisch (Japan) 0x0411
Kannada_Default Kannada (Indien) 0x044B
Korean_Default Koreanisch (Korea) 0x0412
Latvian_Default Lettisch (Lettland) 0x0426
Lithuanian_Default Litauisch (Litauisch) 0x0427
Malay_Malaysia Malaiisch (Malaysia) 0x043E
Malayalam_Default Malayalam (Neutral) 0x004C
Marathi_Default Marathi (Indien) 0x044E
Norwegian_Bokmal Norwegisch, Bokmål (Norwegen) 0x0414
Polish_Default Polnisch (Polen) 0x0415
Portuguese_Portugal Portugiesisch (Portugal) 0x0816
Portuguese_Brazil Portugiesisch (Brasilien) 0x0416
Punjabi_Default Punjabi (Indien) 0x0446
Romanian_Default Rumänisch (Rumänien) 0x0418
Russian_Default Russisch (Neutral) 0x0019
Serbisch (Kyrillisch) Serbisch (Serbien und Montenegro, früher, Kyrillisch) 0x0C1A
Serbisch (Lateinisch) Serbisch (Serbien und Montenegro, Früher, Lateinisch) 0x081A
Slovak_Default Slowakisch (Slowakei) 0x041B
Slovenian_Default Slowenisch (Slowenien) 0x0424
Spanish_Modern Spanisch (Spanien, Moderne Sortierung) 0x0C0A
Swedish_Default Schwedisch (Schweden) 0x041D
Tamil_Default Tamil (Indien) 0x0449
Telugu_Default Telugu (Indien) 0x044A
Thai_Default Thai (Thailand) 0x041E
Turkish_Default Türkisch (Türkiye) 0x041F
Ukrainian_Default Ukrainisch (Ukraine) 0x0422
Urdu_Default Urdu (Pakistan) 0x0420
Vietnamese_Default Vietnamesisch (Vietnam) 0x042A

 

Hinweis

LCIDs für einige Sprachen in der Tabelle werden mithilfe des Sprachbezeichners, des Untersprachbezeichners und des Sortierbezeichners generiert.

 

Weitere Informationen zu Sprachen und zugeordneten Bezeichnern finden Sie unter Sprachbezeichnerkonstanten und Zeichenfolgen.

Hinweis

Es gibt keine Garantie, dass alle diese Sprachregistrierungsschlüssel auf einem bestimmten Computer vorhanden sind. Der Wordbreaker für eine bestimmte Sprache kann je nach Benutzereinstellungen auf dem Computer installiert sein oder nicht.

 

Ab Windows 8.1 ist die bevorzugte Möglichkeit, Wordbreaker zu verwenden, über die WinRT-API WordsSegmenter-Klasse.

Weitere Ressourcen

  • Informationen zum Implementieren und Verwenden von benutzerdefinierten Worttrennungen und -stemmeren für zusätzliche Sprachen und Gebietsschemas finden Sie unter Erweitern von Sprachressourcen in Windows Search.
  • Wenn Sie die Sprache eines Textteils identifizieren müssen, können Sie die automatische Spracherkennung (Language Auto-Detection, LAD) verwenden, die in Windows 7 und höher verfügbar ist. Weitere Informationen finden Sie unter Extended Linguistic Services (ELS).
  • Informationen zum Verwalten, Abfragen und Erweitern des Index finden Sie im Windows Search-Entwicklerhandbuch.

Übersicht über Windows Search

Windows Search als Entwicklungsplattform

Verwenden von verwaltetem Code mit Shelldaten und Windows Search