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 搜尋開發人員指南。
相關主題