将 Full-Text 搜索使用的断词符还原到以前的版本

适用于:SQL ServerAzure SQL 数据库

注释

在 SQL Server 2025(17.x)中,将断字符还原到以前的版本的过程已更改。 有关详细信息,请参阅 在 SQL Server 2025 中更改全文搜索分词器和过滤器

SQL Server 为 Full-Text 搜索支持的所有语言安装并启用分词器和词形还原器的版本,但除韩语外。 本文说明如何在这些组件的此版本和以前的版本间切换。

本文不讨论以下语言:

语言 Description
English 若要恢复或复原英文组件,请参阅 在 SQL Server 2025 中更改 Full-Text 搜索断字符和筛选器
丹麦语、波兰语和土耳其语 以前版本的 SQL Server 中包含的丹麦、波兰和土耳其的第三方分词器将替换为 Microsoft 组件。
捷克语和希腊语 捷克语和希腊语已有了新的断字符。 以前版本的 SQL Server Full-Text 搜索不包括对这两种语言的支持。
朝鲜语 此版本中不会升级韩语分词器和词干分析器。

有关断字符和词干分析器的一般信息,请参阅配置和管理用于搜索的断字符和词干分析器(SQL Server)。

恢复和还原断字符和词干分析器概述

还原和恢复断字符和词干分析器的说明取决于语言。 下表汇总了可能需要的三组操作,以便还原到组件的先前版本。

注意

错误地编辑注册表可能会严重损坏系统。 更改注册表项之前,建议您备份计算机中的所有重要数据。

当前文件 以前的文件 受影响语言的数目 针对文件的操作 针对注册表项的操作
NaturalLanguage6.dll NaturalLanguage6.dll 34 获取并安装 NaturalLanguage6.dll 的旧版本,覆盖当前版本。 无需采取措施。

此版本的注册表项和值未更改。
(其他文件名) NaturalLanguage6.dll 5 获取并安装NaturalLanguage6.dll的以前版本,以覆盖当前版本。 更改一组注册表项以便指定组件的以前版本。
(其他文件名) (其他文件名) 6 无需采取措施。

SQL Server 安装程序将当前版本和以前版本的组件 Binn 复制到该文件夹。
更改一组注册表项以便指定组件的以前版本。

警告

如果将文件的 NaturalLanguage6.dll 当前版本替换为其他版本,则使用此文件的所有语言的行为将发生更改。

本文中所述的文件是在 SQL Server 实例的 MSSQL\Binn 文件夹中安装的 DLL 文件。 完整路径通常是以下路径:

C:\Program Files\Microsoft SQL Server\<instance>\MSSQL\Binn

当前和以前的断字符的文件名均为 NaturalLanguage6.dll 的语言

对于下表中的语言,当前和之前的分词器文件名均为 NaturalLanguage6.dll。 若要恢复或还原这些组件,必须用同一文件的不同版本覆盖 NaturalLanguage6.dll。 无需更改任何注册表项,因为此版本的注册表项未更改。

警告

如果将文件的 NaturalLanguage6.dll 当前版本替换为其他版本,则使用此文件的所有语言的行为将发生更改。

受影响的语言列表

语言 注册表中使用的缩写 区域设置标识符 (LCID)
孟加拉语 ben 1093
保加利亚语 bgr 1026
加泰罗尼亚语 cat 1027
西班牙语 esn 3082
法语 fra 1036
古吉拉特语 guj 1095
希伯来语 heb 1037
印地语 hin 1081
克罗地亚语 hrv 1050
印度尼西亚语 ind 1057
冰岛语 isl 1039
意大利语 ita 1040
卡纳达语 kan 1099
立陶宛语 lth 1063
拉脱维亚语 lvi 1062
马拉雅拉姆语 mal 1100
马拉地语 mar 1102
马来语 msl 1086
中立 Neutral 0000
书面挪威语 nor 1044
旁遮普语 pan 1094
葡萄牙语(巴西) ptb 1046
葡萄牙语 ptg 2070
罗马尼亚语 rom 1048
斯洛伐克语 sky 1051
斯洛文尼亚语 slv 1060
塞尔维亚语 - 西里尔文 srb 3098
塞尔维亚语 - 拉丁语 srl 2074
瑞典语 sve 1053
泰米尔语 tam 1097
泰卢固语 tel 1098
乌克兰语 ukr 1058
乌尔都语 urd 1056
越南语 vit 1066

前面的表在缩写列上按字母顺序排序。

  1. 转到 Binn 前面所述的文件夹。

  2. 将 SQL Server 版本 NaturalLanguage6.dll 备份到另一个位置。

  3. 将 SQL Server 2008 R2 (10.50.x) 或 SQL Server 2008 (10.0.x) 实例的 NaturalLanguage6.dllBinn 文件夹复制到 SQL Server 实例的 Binn 文件夹中。

    警告

    此更改会影响当前版本和以前版本中使用 NaturalLanguage6.dll 的所有语言。

  4. 请重新启动 SQL Server。

与文件名为 NaturalLanguage6.dll 的断字程序相关的语言

对于下表中的语言,以前的断字符的文件名不同于新版本的文件名。 以前的文件名为 NaturalLanguage6.dll. 若要还原到以前的版本,必须使用同一文件的早期版本 NaturalLanguage6.dll 覆盖当前版本。 还必须更改一组注册表项,以指定组件的以前版本或当前版本。

警告

如果将文件的 NaturalLanguage6.dll 当前版本替换为其他版本,则使用此文件的所有语言的行为将发生更改。

受影响的语言列表

语言 缩写
用于
注册表
LCID
阿拉伯语 ara 1025
德语 deu 1031
日语 jpn 1041
荷兰语 nld 1043
俄语 rus 1049

前面的表在缩写列上按字母顺序排序。

将以下说明与 用于恢复和还原断字符和词干分析器的文件名和注册表值部分中的值列表一起使用。

  1. 转到 Binn 前面所述的文件夹。

  2. 请勿从 Binn 文件夹中删除当前版本的组件的文件。

  3. 将 SQL Server 版本 NaturalLanguage6.dll 备份到另一个位置。

  4. NaturalLanguage6.dll 中 SQL Server 2008 R2(10.50.x)或 SQL Server 2008(10.0.x)的一个实例的 Binn 文件夹中的以前版本复制到新的 SQL Server 实例的 Binn 文件夹中。

    警告

    此更改会影响当前版本和以前版本中使用 NaturalLanguage6.dll 的所有语言。

  5. 在注册表中,转到以下节点: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRoot>\MSSearch\CLSID

  6. 使用以下步骤添加 COM ClassID 的新键,用于所选语言的以前的断字符和词干分析器接口:

    1. 添加值来自以前的断字符的表的新键。

    2. 将该键值的(默认)数据更新为来自该表的以前的断字符的文件名。

    3. 如果所选语言使用词干分析器,请为上一个词干分析器添加一个新键,其中包含表中的值。

    4. 如果所选语言使用词干分析器,请将该键值的 (Default) 数据更新为表中上一个词干分析器的文件名称。

  7. 在注册表中,转到以下节点: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRoot>\MSSearch\Language\<language_key> <language_key> 表示注册表中使用的语言的缩写;例如, fra 对于法语和 esn 西班牙语。

  8. WBreakerClass 键值更新为分词器表中的当前值。

  9. 如果所选语言使用词干分析器,请将 StemmerClass 键值更新为当前词干分析器表中的值。

  10. 请重新启动 SQL Server。

用于恢复和还原断字符和词干分析器的文件名和注册表值

将文件名和注册表项的以下列表与前一节中的说明一起使用。 使用以前的值恢复到以前的版本,或者使用当前值还原组件的当前版本。

以下列表按字母顺序对每种语言使用的缩写进行排序。

阿拉伯语 (ara) - LCID 1025

组件 断字符 词干分析器
以前的 CLSID 7efd3c7e-9e4b-4a93-9503-decd74c0ac6d 483b0283-25db-4c92-9c15-a65925cb95ce
以前的文件名 NaturalLanguage6.dll NaturalLanguage6.dll
当前的 CLSID 04b37e30-c9a9-4a7d-8f20-792fc87ddf71
当前文件名 MSWB7.dll

德语 (deu) - LCID 1031

组件 断字符 词干分析器
以前的 CLSID 45eaca36-dbe9-4e4a-a26d-5c201902346d 65170ae4-0ad2-4fa5-b3ba-7cd73e2da825
以前的文件名 NaturalLanguage6.dll NaturalLanguage6.dll
当前的 CLSID dfa00c33-bf19-482e-a791-3c785b0149b4 8a474d89-6e2f-419c-8dd5-9b50edc8c787
当前文件名 MsWb7.dll MsWb7.dll

日语 (jpn) - LCID 1041

组件 断字符 词干分析器
以前的 CLSID e1e8f15e-8bec-45df-83bf-50ff84d0cab5 3d5df14f-649f-4cbc-853d-f18fede9cf5d
以前的文件名 NaturalLanguage6.dll NaturalLanguage6.dll
当前的 CLSID 04096682-6ece-4e9e-90c1-52d81f0422ed
当前文件名 MsWb70011.dll

荷兰语 (nld) - LCID 1043

组件 断字符 词干分析器
以前的 CLSID 2c9f6beb-c5b0-42b6-a5ee-84c24dc0d8ef f7a465ee-13fb-409a-b878-195b420433af
以前的文件名 NaturalLanguage6.dll NaturalLanguage6.dll
当前的 CLSID 69483c30-a9af-4552-8f84-a0796ad5285b cf923cb5-1187-43ab-b053-3e44bed65ffa
当前文件名 MsWb7.dll MsWb7.dll

俄罗斯 (rus) - LCID 1049

组件 断字符 词干分析器
以前的 CLSID 2cb6cda4-1c14-4392-a8ec-81eef1f2e079 e06a0ddd-e81a-4e93-8a8d-f386c3a1b670
以前的文件名 NaturalLanguage6.dll NaturalLanguage6.dll
当前的 CLSID aaa3d3bd-6de7-4317-91a0-d25e7d3babc3 d42c8b70-adeb-4b81-a52f-c09f24f77dfa
当前文件名 MsWb7.dll MsWb7.dll

当前或之前文件名不是 NaturalLanguage6.dll 的语言

对于下表中的语言,之前版本的断字符和词干分析器文件名与新版本的文件名不同。 上一个和当前文件名都不是 NaturalLanguage6.dll。 无需替换任何文件,因为 SQL Server 安装程序会将当前和以前版本的组件 Binn 复制到该文件夹中。 但是,必须更改一组注册表项,以指定组件的以前版本或当前版本。

受影响的语言列表

语言 注册表中使用的缩写 LCID
简体中文 chs 2052
繁体中文 cht 1028
泰语 tha 1054
繁体中文 zh-hk 3076
繁体中文 zh-mo 5124
简体中文 zh-sg 4100

前面的表在缩写列上按字母顺序排序。

将以下说明与 用于恢复和还原断字符和词干分析器的文件名和注册表值部分中的值列表一起使用。

  1. 请勿从 Binn 文件夹中删除当前版本的组件的文件。

  2. 在注册表中,转到以下节点: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRoot>\MSSearch\CLSID

  3. 使用以下步骤添加 COM ClassID 的新键,用于所选语言的以前的断字符和词干分析器接口:

    1. 添加值来自以前的断字符的表的新键。

    2. 将该键值的(默认)数据更新为来自该表的以前的断字符的文件名。

    3. 如果所选语言使用词干分析器,请为上一个词干分析器添加一个新键,其中包含表中的值。

    4. 如果所选语言使用词干分析器,请将该键值的 (Default) 数据更新为表中上一个词干分析器的文件名称。

  4. 在注册表中,转到以下节点: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRoot>\MSSearch\Language\<language_key> <language_key> 表示注册表中使用的语言的缩写;例如, fra 对于法语和 esn 西班牙语。

  5. WBreakerClass 键值更新为分词器表中的当前值。

  6. 如果所选语言使用词干分析器,请将 StemmerClass 键值更新为与当前词干分析器对应的表中的值。

  7. 请重新启动 SQL Server。

用于恢复和还原断字符和词干分析器的文件名和注册表值

将文件名和注册表项的以下列表与前一节中的说明一起使用。 使用以前的值恢复到以前的版本,或者使用当前值还原组件的当前版本。

以下列表按字母顺序对每种语言使用的缩写进行排序。

简体中文 (chs) - LCID 2052

组件 断字符
以前的 CLSID 12ce94a0-defb-11d2-b31d-00600893a857
以前的文件名 chsbrkr.dll
当前的 CLSID e0831c90-bab0-4ca5-b9bd-ea254b538dac
当前文件名 MsWb70804.dll

繁体中文(cht) - LCID 1028

组件 断字符
以前的 CLSID 1680e7c3-9430-4a51-9b82-1e7e7aee5258
以前的文件名 chtbrkr.dll
当前的 CLSID e9b1df65-08f1-438b-8277-ef462b23a792
当前文件名 MsWb70404.dll

泰国 (tha) - LCID 1054

组件 断字符 词干分析器
以前的 CLSID cca22cf4-59fe-11d1-bbff-00c04fb97fda cedc01c7-59fe-11d1-bbff-00c04fb97fda
以前的文件名 Thawbrkr.dll Thawbrkr.dll
当前的 CLSID f70c0935-6e9f-4ef1-9f06-7876536db900
当前文件名 MsWb7001e.dll

繁体中文(zh-hk) - LCID 3076

组件 断字符
以前的 CLSID 1680e7c3-9430-4a51-9b82-1e7e7aee5258
以前的文件名 chtbrkr.dll
当前的 CLSID e9b1df65-08f1-438b-8277-ef462b23a792
当前文件名 MsWb70404.dll

中国传统(zh-mo) - LCID 5124

组件 断字符
以前的 CLSID 1680e7c3-9430-4a51-9b82-1e7e7aee5258
以前的文件名 chtbrkr.dll
当前的 CLSID e9b1df65-08f1-438b-8277-ef462b23a792
当前文件名 MsWb70404.dll

简体中文(zh-sg)- LCID 4100

组件 断字符
以前的 CLSID 12ce94a0-defb-11d2-b31d-00600893a857
以前的文件名 chsbrkr.dll
当前的 CLSID e0831c90-bab0-4ca5-b9bd-ea254b538dac
当前文件名 MsWb70804.dll