更改用于美国英语和英国英语的断词器

适用于:SQL Server

本文介绍了在 SQL Server 2012 (11.x) 中推出的更新组件与之前的英语组件之间,切换美式英语和英式英语断字符的传统方法。

有关 SQL Server 2025(17.x)中的全文索引版本更改的信息,请参阅全文索引版本升级。

适用于:SQL Server 2022(16.x)和早期版本。

SQL Server 2012 (11.x) 安装了一个更新版本的英语断词器和词干分析器,替换了这些组件的先前版本。 有关更新组件的行为变化信息,请参阅全文搜索中的行为更改。

本文介绍如何从这些组件的更新版本切换到以前的版本,或从以前的版本切换回更新的版本。 对于群集安装,在所有节点上进行这些更改。

部分旧版 SQL Server 使用了不同的断字符,由用于美国英语 (LCID 1033) 和英国英语 (LCID 2057) 的不同 CLSID 表示。 在 SQL Server 2012(11.x)和更高版本中,两个区域设置标识符(LCID)使用相同的组件和相同的 CLSID,如下表所示:

LCID 以前版本安装的断词器(版本 12.0.6828.0) 以前版本安装的词干分析器 SQL Server 2012 及更高版本安装的断词器(版本 14.0.4999.1038) SQL Server 2012及更高版本中安装的Stemmer
1033 (美国英语) 188d6cc5-cb03-4c01-912e-47d21295d77e eeed4c20-7f1b-11ce-be57-00aa0051fe20 9faed859-0b30-4434-ae65-412e14a16fb8 e1e5ef84-c4a6-4e50-8188-99aef3de2659
2057 (英国英语) 173c97e2-aebe-437c-9445-01b237abf2f6 d99f7670-7f1a-11ce-be57-00aa0051fe20 9faed859-0b30-4434-ae65-412e14a16fb8 e1e5ef84-c4a6-4e50-8188-99aef3de2659

本文中所述的组件是安装在 SQL Server 实例的 MSSQL\Binn 文件夹中的 DLL 文件。 完整的路径通常是C:\Program Files\Microsoft SQL Server\<instance>\MSSQL\Binn。

有关分词器和词干分析器的详细信息,请参阅 配置和管理分词器和词干分析器。

从当前英语断词器切换到以前的英语断词器

此示例对 MSSQL17.MSSQLSERVER 值使用 <InstanceRoot>,这是 SQL Server 2025 (17.x) 的默认实例。 调整此值以匹配环境。

以下命令在 Windows 注册表中添加或更新键,以为 LCID 1033 (enu) 设置以前美国英语断词器和词干分析器接口的 COM ClassID。

从提升的命令提示符运行以下命令:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\CLSID\{188D6CC5-CB03-4C01-912E-47D21295D77E}" /ve /t REG_SZ /d "langwrbk.dll"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\CLSID\{EEED4C20-7F1B-11CE-BE57-00AA0051FE20}" /ve /t REG_SZ /d "infosoft.dll"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\Language\enu" /v "WBreakerClass" /t REG_SZ /d "{188D6CC5-CB03-4C01-912E-47D21295D77E}" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\Language\enu" /v "StemmerClass" /t REG_SZ /d "{EEED4C20-7F1B-11CE-BE57-00AA0051FE20}" /f

重启SQL Server以使用这些断字符设置。

从以前的英语分词器切换回当前的英语分词器

此示例对 MSSQL17.MSSQLSERVER 值使用 <InstanceRoot>,这是 SQL Server 2025 (17.x) 的默认实例。 调整此值以匹配环境。

以下命令在 Windows 注册表中添加或更新键,以将 LCID 1033 (enu) 的 COM ClassID 从美国英语恢复。

从提升的命令提示符运行以下命令:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\CLSID\{9FAED859-0B30-4434-AE65-412E14A16FB8}" /ve /t REG_SZ /d "MsWb7.dll"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\CLSID\{E1E5EF84-C4A6-4E50-8188-99AEF3DE2659}" /ve /t REG_SZ /d "MsWb7.dll"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\Language\enu" /v "WBreakerClass" /t REG_SZ /d "{9FAED859-0B30-4434-AE65-412E14A16FB8}" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\Language\enu" /v "StemmerClass" /t REG_SZ /d "{E1E5EF84-C4A6-4E50-8188-99AEF3DE2659}" /f

重启SQL Server以使用这些断字符设置。