共用方式為


Windows 搜尋支援的語言

本主題描述 Windows 搜尋如何支援多種語言。

Tokenization、Wordbreakers 和 Language Resources

Windows 搜尋與語言無關,但跨語言的搜尋精確度可能會因為斷詞工具權杖化文字的方式而有所不同。 斷詞工具會針對語言實作各種標記化規則,並將文字分成個別標記或要編制索引或搜尋的文字。

索引文字和查詢字串的語言都會分成標記。 由於權杖化規則會因語言而異,因此每個語言或語言系列都有個別的斷詞工具。 如果查詢語言與索引語言不符,則結果可能會無法預期。

Windows 搜尋隨附一組定義完善的斷詞工具。 Windows Vista 和更新版本中支援傳統斷詞工具和字幹分析器元件。 如果無法判斷檔的語言,Windows 搜尋會嘗試偵測語言來識別最適當的斷詞工具。 Windows 搜尋會藉由呼叫 GetSystemPreferredUILanguages 函式來嘗試偵測語言,以判斷 MUI (MUI) 語言的第一個使用者介面 (,除非安裝 MUI 語言套件) 。 如果該呼叫成功,則會使用第一個 MUI 語言的斷詞工具。 如果 呼叫 GetSystemPreferredUILanguages 失敗,Windows 搜尋會呼叫 GetSystemDefaultLCID 函式來擷取系統地區設定,並使用與該地區設定相關聯的斷詞工具。

如果未針對語言安裝任何斷詞工具,Windows 搜尋會使用 中性 斷詞工具在空白字元上中斷。

您可以透過登錄移除語言,如下列範例所示。

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

提示

如果您變更登錄,請重新開機 Windows 搜尋。

 

當 Windows 搜尋需要新的斷詞工具時,會讀取 CLSID) (類別識別碼,並快取具現化的斷詞工具。

您可以藉由實作 IWordBreaker 介面來建立語言的自訂斷詞工具。 Windows 搜尋接著會在建置內容索引並執行查詢時呼叫 IWordBreaker 方法。

系統會從內容來源擷取索引內容的地區設定資訊。 如果來源實作者不知道已編制索引內容的地區設定,則應將地區設定設定設為 LOCALE_NEUTRAL

例如,如果您實作篩選處理常式 (IFilter 介面的實作) 、屬性處理常式或通訊協定處理常式,您應該將索引內容的地區設定設定為 LOCALE_NEUTRAL ,除非您有特定的地區設定資訊,而且確信其精確度。

提示

如果索引查詢是以使用者輸入為基礎,地區設定應該符合使用者輸入的語言。 您可以呼叫 GetKeyboardLayout 函式來判斷此地區設定。

 

Wordbreakers 支援的語言

Windows 搜尋包含可支援下列語言的斷詞工具。

登錄機碼 語言 (子語言) LCID
Arabic_SaudiArabia 阿拉伯文 (中性) 0x0001
Bengali_Default 孟加拉國文 (中性) 0x0045
Bulgarian_Default 保加利亞文 (保加利亞) 0x0402
Catalan_Default 加泰蘭文 (加泰蘭) 0x0403
Chinese_HongKong 中文 (香港特別行政區、中國) 0x0C04
Chinese_Simplified 簡體中文 0x0804
Chinese_Traditional 繁體中文 0x0404
Croatian_Default 克羅埃西亞文 (克羅埃西亞) 0x041A
Czech_Default 捷克文 (捷克共和國) 0x0405
Danish_Default 丹麥文 (丹麥) 0x0406
Dutch_Dutch 荷蘭文 (荷蘭) 0x0413
English_UK 英文 (英國) 0x0809
English_US 英文 (美國) 0x0409
Finnish_Default 芬蘭文 (芬蘭) 0x040B
French_French 法文 (法國) 0x040C
German_German 德文 (德國) 0x0407
Greek_Default 希臘文 (希臘) 0x0408
Gujarati_Default 古吉拉特文 (印度) 0x0447
Hebrew_Default 希伯來文 (中性) 0x000D
Hindi_Default 印度文 (印度) 0x0439
Hungarian_Default 匈牙利文 (匈牙利) 0x040E
Icelandic_Default 冰島文 (冰島) 0x040F
Indonesian_Default 印尼文 (印尼) 0x0421
Italian_Italian 義大利文 (義大利) 0x0410
Japanese_Default 日文 (日本) 0x0411
Kannada_Default 坎那達文 (印度) 0x044B
Korean_Default 韓文 (韓國) 0x0412
Latvian_Default 拉脫維亞文 (拉脫維亞) 0x0426
Lithuanian_Default 立陶宛文 (立陶宛文) 0x0427
Malay_Malaysia 馬來文 (馬來西亞) 0x043E
Malayalam_Default 馬來亞 (中性) 0x004C
Marathi_Default 馬拉提文 (印度) 0x044E
Norwegian_Bokmal 挪威文 (巴克摩,挪威) 0x0414
Polish_Default 波蘭文 (波蘭) 0x0415
Portuguese_Portugal 葡萄牙文 (葡萄牙) 0x0816
Portuguese_Brazil 葡萄牙文 (巴西) 0x0416
Punjabi_Default 旁遮普語 (印度) 0x0446
Romanian_Default 羅馬尼亞文 (羅馬尼亞) 0x0418
Russian_Default 俄文 (中性) 0x0019
塞爾維亞文_斯拉夫 塞爾維亞 (塞爾維亞和塞爾維亞、前文、斯拉夫文) 0x0C1A
塞爾維亞文_拉丁 塞爾維亞 (塞爾維亞和塞爾維亞,前者、拉丁文) 0x081A
Slovak_Default 斯洛伐克文 (斯洛伐克) 0x041B
Slovenian_Default 斯洛維尼亞文 (斯洛維尼亞) 0x0424
Spanish_Modern 西班牙文 (西班牙、新式排序) 0x0C0A
Swedish_Default 瑞典文 (瑞典) 0x041D
Tamil_Default 坦米爾文 (印度) 0x0449
Telugu_Default 特拉古文 (印度) 0x044A
Thai_Default 泰文 (泰國) 0x041E
Turkish_Default 土耳其文 (Türkiye) 0x041F
Ukrainian_Default 烏克蘭文 (烏克蘭) 0x0422
Urdu_Default 烏都文 (巴基斯坦) 0x0420
Vietnamese_Default 越南文 (越南) 0x042A

 

注意

資料表中某些語言的 LCID 是使用語言識別項、子語言識別項和排序識別碼來產生。

 

如需語言和相關識別碼的詳細資訊,請參閱 語言識別項常數和字串

注意

不保證所有語言登錄機碼都會出現在任何指定的電腦上。 任何指定語言的斷詞工具可能或可能不會安裝在電腦中,視使用者設定而定。

 

從Windows 8.1開始,使用斷詞工具的慣用方式是透過 WinRT API WordsSegmenter 類別

其他資源

  • 如需如何針對其他語言和地區設定實作和使用自訂斷詞工具和字幹分析器的資訊,請參閱 擴充 Windows 搜尋中的語言資源
  • 如果您需要識別文字片段的語言,您可以使用語言自動偵測 (LAD) ,這適用于 Windows 7 和更新版本。 如需詳細資訊,請參閱 擴充語言服務 (ELS) 。
  • 如需管理、查詢及擴充索引的相關資訊,請參閱 Windows 搜尋開發人員指南

Windows Search 概觀

Windows Search 做為開發平台

搭配 Shell 資料和 Windows Search 使用 Managed 程式碼