Freigeben über


Von der Windows-Suche unterstützte Sprachen

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

Tokenisierung, Wordbreakers und Sprachressourcen

Windows Search ist sprachunabhängig, aber die Genauigkeit der Suche in verschiedenen Sprachen kann aufgrund der Art und Weise variieren, wie Wörtertrennungen Text tokenisieren. Wordbreakers 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 Wörtertrennungen für jede Sprache oder Familie von Sprachen. Wenn zwischen der Abfragesprache und der indizierten Sprache ein Konflikt besteht, können die Ergebnisse unvorhersehbar sein.

Windows Search wird mit einem gut definierten Satz von Wörtertrennungen ausgeliefert. Klassische Wordbreaker- und Stemmerkomponenten werden in Windows Vista und höher unterstützt. Wenn die Sprache eines Dokuments nicht bestimmt werden kann, versucht Die Windows Search, die Sprache zu erkennen, um den am besten geeigneten Worttrennung zu identifizieren. Windows Search versucht, die Sprache zu erkennen, indem die GetSystemPreferredUILanguages-Funktion aufgerufen wird, um die erste MuI-Sprache (Dies ist in der Regel die Sprache der Systembenutzeroberfläche, es sei denn, MUI-Sprachpakete werden installiert). Wenn dieser Aufruf erfolgreich ist, wird der Worttrennung 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 und der diesem Gebietsschema zugeordnete Wordbreaker verwendet wird.

Wenn für eine Sprache kein Worttrennung installiert ist, bricht Windows Search mithilfe der Neutral Worttrennung auf Leerzeichen.

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

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

Trinkgeld

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

 

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

Sie können eine benutzerdefinierte Wörtertrennung für eine Sprache erstellen, indem Sie die IWordBreaker--Schnittstelle implementieren. Windows Search ruft dann die IWordBreaker- Methoden auf, wenn sie Inhaltsindizes erstellt und Abfragen ausführt.

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

Wenn Sie z. B. einen Filterhandler implementieren (eine Implementierung der IFilter Schnittstelle), Eigenschaftenhandler oder Protokollhandler, sollten Sie das Gebietsschema für indizierte Inhalte auf LOCALE_NEUTRAL festlegen, es sei denn, Sie verfügen über bestimmte Gebietsschemainformationen und sind sicher, dass sie deren Genauigkeit haben.

Trinkgeld

Wenn eine Indexabfrage auf Benutzereingaben basiert, sollte das Gebietsschema mit der Sprache übereinstimmen, in der der Benutzer eingabet. Sie können dieses Gebietsschema ermitteln, indem Sie die funktion GetKeyboardLayout aufrufen.

 

Von Wordbreakers unterstützte Sprachen

Windows Search enthält Wörtertrennungen 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 Englisch (Vereinigtes Königreich) 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
Serbian_Cyrillic Serbisch (Serbien und Montenegro, Ehemalige, Kyrillisch) 0x0C1A
Serbian_Latin 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 Tamilisch (Indien) 0x0449
Telugu_Default Telugu (Indien) 0x044A
Thai_Default Thailändisch (Thailand) 0x041E
Turkish_Default Türkisch (Türkiya) 0x041F
Ukrainian_Default Ukrainisch (Ukraine) 0x0422
Urdu_Default Urdu (Pakistan) 0x0420
Vietnamese_Default Vietnamesisch (Vietnam) 0x042A

 

Anmerkung

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

 

Weitere Informationen zu Sprachen und zugehörigen Bezeichnern finden Sie unter Language Identifier Constants and Strings.

Anmerkung

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

 

Ab Windows 8.1ist die bevorzugte Methode zum Verwenden von Wörtertrennungen über die WinRT-API WordsSegmenter-Klasse.

Zusätzliche Ressourcen

  • Informationen zum Implementieren und Verwenden von benutzerdefinierten Worttrennungen und Wortstammwörtern für zusätzliche Sprachen und Gebietsschemas finden Sie unter Erweitern von Sprachressourcen in Windows Search.
  • Wenn Sie die Sprache eines Textabschnitts 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 Indexes finden Sie im Windows Search Developer's Guide.

Windows Search Overview

Windows Search als Entwicklungsplattform

Verwenden von verwaltetem Code mit Shelldaten und Windows Search-