斷詞工具與字幹分析器
斷詞工具及字幹分析器,會在所有全文檢索索引資料上執行語文分析。語文分析包括找出文字分界 (斷詞) 以及動詞變化 (字根處理)。斷詞工具與字幹分析器是語言特有的工具,而且語言分析的規則會因不同的語言而有所差異。對於給定的語言而言,「斷詞工具」(Word Breaker) 會根據語言的語彙規則,判斷文字分界存在的位置,藉以識別個別單字。每個單字 (也稱為 Token) 都會使用壓縮表示來插入全文檢索索引中,以便減少其大小。「字幹分析器」(Stemmer) 會根據該語言的規則來產生特定單字的字形變化 (例如,"running"、"ran" 和 "runner" 是 "run" 單字的不同形態)。
使用語言特有的斷詞工具會使得針對該語言產生的詞彙更正確。如果有語系的斷詞工具,但沒有特定次語言的斷詞工具,則會使用主要語言。例如,處理加拿大法文時會使用法文文字分隔。如果某種特定語文沒有文字分隔,則會使用中性文字分隔。使用中性文字分隔時,會以中性字元來中斷文字,例如空白與標點符號。
斷詞工具註冊
若要使用某種語言的斷詞工具,您必須註冊它們。對於已註冊的斷詞工具而言,相關聯的語言資源 (字幹分析器、非搜尋字 (停用字詞) 和同義字檔案) 也會成為可供全文檢索索引和查詢作業使用。若要檢視目前已向 SQL Server 註冊之斷詞工具的語言清單,請使用下列 Transact-SQL 陳述式:
SELECT * FROM sys.fulltext_languages
如果您加入、移除或更改了斷詞工具,就必須重新整理支援全文檢索索引和查詢的 Microsoft Windows 地區設定識別碼 (LCID) 清單。如需詳細資訊,請參閱<如何:更改已註冊的斷詞工具和篩選清單 (Transact-SQL)>。
SQL Server 2008 隨附許多授權的協力廠商斷詞工具。您可以針對許多語言 (丹麥文、波蘭文和土耳其文) 手動載入其他協力廠商斷詞工具 (和字幹分析器)。如需詳細資訊,請參閱<如何:載入授權協力廠商斷詞工具>。
全文檢索語言選項
若為當地語系化的 SQL Server 版本,SQL Server 安裝程式就會將 default full-text language 選項設定為伺服器的語言 (如果有相符項目存在的話)。若 SQL Server 為非當地語系化的版本時,則 default full-text language 選項會是英文。
建立或更改全文檢索索引時,您可以為每個全文檢索索引資料行指定不同的語言。若沒有為資料行指定語文種類,則組態選項預設值是 default full-text language。
如需詳細資訊,請參閱<default full-text language 選項>。
[!附註]
除非在查詢中指定 LANGUAGE 選項,否則列在單一全文檢索查詢函數子句的所有資料行都必須使用相同的語文。查詢之全文檢索索引資料行所用的語言會決定要對全文檢索查詢述詞 (CONTAINS 和 FREETEXT) 與函數 (CONTAINSTABLE 和 FREETEXTTABLE) 之引數執行的語言分析。
建立資料行的全文檢索索引時選擇語言
建立全文檢索索引時,我們建議您針對每個索引資料行指定語言。如果沒有為資料行指定語言,就會使用系統預設語言。資料行的語言會決定哪些斷詞工具和字幹分析器要用於建立該資料行的索引。此外,資料行的全文檢索查詢會使用該語言的同義字檔案。
在選擇資料行語言以建立全文檢索索引時,必須考慮一些事項。這些考量與文字如何 Token 化,然後如何由全文檢索引擎編製索引有關。如需詳細資訊,請參閱<建立全文檢索索引時選擇語言的最佳作法>。
若要檢視資料行的斷詞工具語言
sys.fulltext_index_columns (Transact-SQL)
SELECT 'language_id' AS "LCID" FROM sys.fulltext_index_columns;
SQL Server 2008 中新斷詞工具的影響
SQL Server 2008 包括 50 種以上不同語言的斷詞工具,其中的 23 種也存在於 SQL Server 2005 中。只有英文、韓文、泰文和中文 (所有形式) 的斷詞工具維持原狀。至於其他語言,SQL Server 2008 導入了新一代的斷詞工具,其語言規則比舊版斷詞工具更好而且更正確。新斷詞工具的行為可能會與已匯入之 SQL Server 2005 全文檢索索引中斷詞工具的行為稍有不同。如果全文檢索目錄是在 SQL Server 2005 資料庫升級為 SQL Server 2008 時匯入,這點就很明顯。全文檢索目錄中全文檢索索引所使用的一或多種語言現在可能會與新的斷詞工具相關聯。如需詳細資訊,請參閱<全文檢索搜尋升級>。
SQL Server 2005 所支援之語言的斷詞工具版本
只有英文、韓文、泰文和中文 (所有形式) 的斷詞工具維持原狀。下表將列出存在 SQL Server 2005 中的斷詞工具,並指出它們是否已經在 SQL Server 2008 中更新。如需所有 SQL Server 2008 斷詞工具的完整清單,請參閱<sys.fulltext_languages (Transact-SQL)>。
[!附註]
系統預設會註冊大部分語言的斷詞工具。不過,有一些授權的協力廠商斷詞工具預設是停用的。如需有關這些語言以及如何註冊這些斷詞工具的詳細資訊,請參閱<如何:載入授權協力廠商斷詞工具>。
語言 |
LCID |
斷詞工具 |
---|---|---|
巴西文 |
1046 |
新增 |
中文 (香港特別行政區,中國) |
3076 |
未變更 |
中文 (澳門特別行政區) |
5124 |
未變更 |
中文 (新加坡) |
4100 |
未變更 |
丹麥文 (預設停用) |
1030 |
未變更 |
荷蘭文 |
1043 |
新增 |
英文 |
1033 |
未變更 |
英文 (英國) |
2057 |
未變更 |
法文 |
1036 |
新增 |
德文 |
1031 |
新增 |
義大利文 |
1040 |
新增 |
日文 |
1041 |
新增 |
韓文 |
1042 |
未變更 |
中性語言 |
0 |
新增 |
波蘭文 (預設停用) |
1045 |
未變更 |
葡萄牙文 |
2070 |
新增 |
俄文 |
1049 |
新增 |
簡體中文 |
2052 |
未變更 |
西班牙文 |
3082 |
新增 |
瑞典文 |
1053 |
新增 |
泰文 |
1054 |
未變更 |
繁體中文 |
1028 |
未變更 |
土耳其文 (預設停用) |
1055 |
未變更 |
如需支援之語言的完整清單,請參閱<sys.fulltext_languages (Transact-SQL)>。
取得有關斷詞工具的資訊
檢視斷詞工具、同義字和停用字詞表組合的 Token 化結果
傳回有關已註冊之斷詞工具的資訊
變更記錄
更新的內容 |
---|
更新「斷詞工具註冊」一節。 |