斷詞工具與字幹分析器

斷詞工具及字幹分析器,會在所有全文檢索索引資料上執行語文分析。語文分析包括找出文字分界 (斷詞) 以及動詞變化 (字根處理)。斷詞工具與字幹分析器是語言特有的工具,而且語言分析的規則會因不同的語言而有所差異。對於給定的語言而言,「斷詞工具」(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 選項,否則列在單一全文檢索查詢函數子句的所有資料行都必須使用相同的語文。查詢之全文檢索索引資料行所用的語言會決定要對全文檢索查詢述詞 (CONTAINSFREETEXT) 與函數 (CONTAINSTABLEFREETEXTTABLE) 之引數執行的語言分析。

建立資料行的全文檢索索引時選擇語言

建立全文檢索索引時,我們建議您針對每個索引資料行指定語言。如果沒有為資料行指定語言,就會使用系統預設語言。資料行的語言會決定哪些斷詞工具和字幹分析器要用於建立該資料行的索引。此外,資料行的全文檢索查詢會使用該語言的同義字檔案。

在選擇資料行語言以建立全文檢索索引時,必須考慮一些事項。這些考量與文字如何 Token 化,然後如何由全文檢索引擎編製索引有關。如需詳細資訊,請參閱<建立全文檢索索引時選擇語言的最佳作法>。

若要檢視資料行的斷詞工具語言

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)>。

斷詞逾時錯誤

斷詞逾時錯誤可能會在各種情況中發生。如需有關這些情況以及如何在每種情況中回應的詳細資訊,請參閱<MSSQLSERVER_30053>。

取得有關斷詞工具的資訊

檢視斷詞工具、同義字和停用字詞表組合的 Token 化結果

若要傳回有關已註冊之斷詞工具的資訊