Skip to content

Commit c7972cd

Browse files
authored
Merge pull request #36017 from pnikhare/Customize-Fulltext-V2
Add changes to customize Fulltext V2 wordbreaker and Filters
2 parents dd9dcdf + 2e02f3a commit c7972cd

6 files changed

Lines changed: 527 additions & 402 deletions
Lines changed: 81 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,125 +1,140 @@
11
---
2-
title: "Change the Word Breaker Used for US English and UK English"
3-
description: "Change the Word Breaker Used for US English and UK English"
2+
title: Change the Word Breaker and Filter in SQL Server 2025
3+
titleSuffix: SQL Server Full-Text Search
4+
description: Change the word breaker used for US English and UK English in SQL Server 2025.
45
author: rwestMSFT
56
ms.author: randolphwest
67
ms.reviewer: mikeray
7-
ms.date: 05/27/2025
8+
ms.date: 12/08/2025
89
ms.service: sql
910
ms.subservice: search
1011
ms.topic: how-to
1112
monikerRange: "=azuresqldb-current || >=sql-server-2016 || >=sql-server-linux-2017 || =azuresqldb-mi-current"
1213
---
13-
# Change the Word Breaker Used for US English and UK English
14+
# Change the word breaker and filter in SQL Server 2025 (SQL Server Search)
1415

15-
[!INCLUDE [SQL Server Azure SQL Database](../../includes/applies-to-version/sql-asdb.md)]
16+
[!INCLUDE [sssql25-md](../../includes/applies-to-version/sqlserver2025.md)]
1617

17-
Starting with [!INCLUDE [sssql11-md](../../includes/sssql11-md.md)], setup installs an updated version of the word breaker and stemmer for the English language, replacing the previous version of these components. For information about the changed behavior of the updated components, see [Behavior Changes to Full-Text Search](/previous-versions/sql/2014/database-engine/behavior-changes-to-full-text-search#behavior-changes-in-full-text-search-in--1). This topic describes how to switch from the updated version of these components to the previous version, or to switch back from the previous version to the updated version. For cluster installations, these changes should be made on all nodes.
18+
[!INCLUDE [sssql25-md](../../includes/sssql25-md.md)] installs new word breakers and filters, replacing all the previous versions of these components. Binaries installed with [!INCLUDE [sssql25-md](../../includes/sssql25-md.md)] are called **version 2**, and binaries installed with [!INCLUDE [sssql22-md](../../includes/sssql22-md.md)] and earlier versions are called **version 1**. This article describes how to switch between version 2 and version 1 components.
1819

19-
Some previous versions of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] used different word breakers represented by different CLSIDs for US English (LCID 1033) and UK English (LCID 2057). Starting with [!INCLUDE [sssql11-md](../../includes/sssql11-md.md)], both LCIDs use the same components with the same CLSIDs, as shown in the following table:
20+
## Switch from version 2 to version 1 component
2021

21-
| LCID | Word breaker installed by previous versions<br /><br />version 12.0.6828.0 | Stemmer installed by previous versions | Word breaker installed with [!INCLUDE [sssql11-md](../../includes/sssql11-md.md)] and higher versions<br />version 14.0.4999.1038 | Stemmer installed with [!INCLUDE [sssql11-md](../../includes/sssql11-md.md)] and higher versions |
22-
| --- | --- | --- | --- | --- |
23-
| 1033<br />(US English) | 188D6CC5-CB03-4C01-912E-47D21295D77E | EEED4C20-7F1B-11CE-BE57-00AA0051FE20 | 9FAED859-0B30-4434-AE65-412E14A16FB8 | E1E5EF84-C4A6-4E50-8188-99AEF3DE2659 |
24-
| 2057<br />(UK English) | 173C97E2-AEBE-437C-9445-01B237ABF2F6 | D99F7670-7F1A-11CE-BE57-00AA0051FE20 | 9FAED859-0B30-4434-AE65-412E14A16FB8 | E1E5EF84-C4A6-4E50-8188-99AEF3DE2659 |
25-
26-
The components described in this topic are DLL files that are installed in the `MSSQL\Binn` folder for the [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] instance. The full path is typically `C:\Program Files\Microsoft SQL Server\<instance>\MSSQL\Binn`.
27-
28-
For more information about word breakers and stemmers, see [Configure and manage word breakers and stemmers for search (SQL Server)](configure-and-manage-word-breakers-and-stemmers-for-search.md).
29-
30-
## Switch from the current English word breaker to the previous English word breakers
31-
32-
#### Switch from the current version of the US English word breaker to the previous version
33-
34-
1. In the registry, navigate to the following node: **HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\<InstanceRoot\>\MSSearch\CLSID**.
22+
> [!NOTE]
23+
> Use the default version 2 word breakers and filters installed with [!INCLUDE [sssql25-md](../../includes/sssql25-md.md)]. They're enhanced, more secure, and compliant with security scans.
3524
36-
1. Use the following steps to add new keyS for the COM ClassIDs for the previous US English word breaker and stemmer interfaces for LCID 1033:
25+
The default database scoped configuration for full-text indexes is version 2. Change it to version 1.
3726

38-
1. Add a new key with the value **{188D6CC5-CB03-4C01-912E-47D21295D77E}** for the previous word breaker.
27+
```sql
28+
ALTER DATABASE SCOPED CONFIGURATION SET FULLTEXT_INDEX_VERSION = 1;
29+
```
3930

40-
1. Update the (Default) data of that key value to **langwrbk.dll**.
31+
Legacy version 1 word breakers and filters are removed from [!INCLUDE [sssql25-md](../../includes/sssql25-md.md)]. You must copy these binaries from [!INCLUDE [sssql22-md](../../includes/sssql22-md.md)] or previous instance's `C:\Program Files\Microsoft SQL Server\MSSQL16.<instance-name>\MSSQL\Binn` directory.
4132

42-
1. Add a new key with the value **{EEED4C20-7F1B-11CE-BE57-00AA0051FE20}** for the previous stemmer.
33+
For existing indexes, verify the version by using the [sys.fulltext_indexes](../system-catalog-views/sys-fulltext-indexes-transact-sql.md) catalog view. If the index is already version 1, you don't need to rebuild it. For a version 2 index, rebuild the catalog to switch back to version 1.
4334

44-
1. Update the (Default) data of that key value to **infosoft.dll**.
35+
## Switch from version 1 to version 2 component
4536

46-
1. In the registry, navigate to the following node: **HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\<InstanceRoot\>\MSSearch\Language\enu**.
37+
For instances upgraded from [!INCLUDE [sssql22-md](../../includes/sssql22-md.md)] to [!INCLUDE [sssql25-md](../../includes/sssql25-md.md)], you must rebuild full-text indexes with version 1 components using version 2 components.
4738

48-
1. Update the **WBreakerClass** key value to **{188D6CC5-CB03-4C01-912E-47D21295D77E}**.
39+
```sql
40+
ALTER FULLTEXT CATALOG [FtCatalog] REBUILD;
41+
```
4942

50-
1. Update the **StemmerClass** key value to **{EEED4C20-7F1B-11CE-BE57-00AA0051FE20}**.
43+
> [!NOTE]
44+
> A catalog rebuild operation rebuilds all full-text indexes. If you want to control the order of the index build, or reduce resource requirements, [drop and recreate](../../t-sql/statements/drop-fulltext-index-transact-sql.md) the full-text indexes individually.
5145
52-
1. Restart [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)].
46+
## Change the word breaker used for US English and UK English
5347

54-
#### Switch from the current version of the UK English word breaker to the previous version
48+
**Applies to**: [!INCLUDE [sssql22-md](../../includes/sssql22-md.md)] and earlier versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]
5549

56-
1. In the registry, navigate to the following node: **HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\<InstanceRoot\>\MSSearch\CLSID**.
50+
[!INCLUDE [sssql11-md](../../includes/sssql11-md.md)] installs an updated version of the word breaker and stemmer for the English language, replacing the previous version of these components. For information about the changed behavior of the updated components, see [Behavior Changes to Full-Text Search](/previous-versions/sql/2014/database-engine/behavior-changes-to-full-text-search#behavior-changes-in-full-text-search-in--1).
5751

58-
1. Use the following steps to add a new key for the COM ClassIDs for the previous UK English word breaker and stemmer interfaces for LCID 2057:
52+
This article describes how to switch from the updated version of these components to the previous version, or to switch back from the previous version to the updated version. For cluster installations, make these changes on all nodes.
5953

60-
1. Add a new key with the value **{173C97E2-AEBE-437C-9445-01B237ABF2F6}** for the previous word breaker.
54+
Some previous versions of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] used different word breakers represented by different CLSIDs for US English (LCID 1033) and UK English (LCID 2057). In [!INCLUDE [sssql11-md](../../includes/sssql11-md.md)] and later versions, both locale identifiers (LCIDs) use the same components with the same CLSIDs, as shown in the following table:
6155

62-
1. Update the (Default) data of that key value to **langwrbk.dll**.
63-
64-
1. Add a new key with the value **{D99F7670-7F1A-11CE-BE57-00AA0051FE20}** for the previous stemmer.
56+
| LCID | Word breaker installed by previous versions (version 12.0.6828.0) | Stemmer installed by previous versions | Word breaker installed with SQL Server 2012 and higher versions (version 14.0.4999.1038) | Stemmer installed with SQL Server 2012 and higher versions |
57+
| --- | --- | --- | --- | --- |
58+
| `1033` (US English) | `188d6cc5-cb03-4c01-912e-47d21295d77e` | `eeed4c20-7f1b-11ce-be57-00aa0051fe20` | `9faed859-0b30-4434-ae65-412e14a16fb8` | `e1e5ef84-c4a6-4e50-8188-99aef3de2659` |
59+
| `2057` (UK English) | `173c97e2-aebe-437c-9445-01b237abf2f6` | `d99f7670-7f1a-11ce-be57-00aa0051fe20` | `9faed859-0b30-4434-ae65-412e14a16fb8` | `e1e5ef84-c4a6-4e50-8188-99aef3de2659` |
6560

66-
1. Update the (Default) data of that key value to **infosoft.dll**.
61+
The components described in this article are DLL files that are installed in the `MSSQL\Binn` folder for the [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] instance. The full path is typically `C:\Program Files\Microsoft SQL Server\<instance>\MSSQL\Binn`.
6762

68-
1. In the registry, navigate to the following node: **HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\<InstanceRoot\>\MSSearch\Language\eng**.
63+
For more information about word breakers and stemmers, see [Configure and manage word breakers and stemmers for search (SQL Server)](configure-and-manage-word-breakers-and-stemmers-for-search.md).
6964

70-
1. Update the **WBreakerClass** key value to **{173C97E2-AEBE-437C-9445-01B237ABF2F6}**.
65+
## Switch from the current English word breaker to the previous English word breakers
7166

72-
1. Update the **StemmerClass** key value to **{D99F7670-7F1A-11CE-BE57-00AA0051FE20}**.
67+
This example uses `MSSQL17.MSSQLSERVER` for the `<InstanceRoot>` value, which is the default instance for [!INCLUDE [sssql25-md](../../includes/sssql25-md.md)]. Adjust this value to match your environment.
7368

74-
1. Restart [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)].
69+
### [Switch from current version of US English](#tab/en-us)
7570

76-
## Switch back from the previous English word breakers to the current English word breaker
71+
The following commands add or update keys in the Windows registry, to set the COM ClassIDs for the previous US English word breaker and stemmer interfaces for LCID 1033 (`enu`).
7772

78-
#### Switch back from the previous version of the US English word breaker to the current version
73+
Run these commands from an elevated command prompt:
7974

80-
1. In the registry, navigate to the following node: **HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\<InstanceRoot\>\MSSearch\CLSID**.
75+
```console
76+
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"
77+
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"
78+
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
79+
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
80+
```
8181

82-
1. If the following keys don't exist, then use the following steps to add a new key for the COM ClassIDs for the current US English word breaker and stemmer interfaces for LCID 1033:
82+
Restart [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] to use these word breaker settings.
8383

84-
1. Add a new key with the value **{9faed859-0b30-4434-ae65-412e14a16fb8}** for the current word breaker.
84+
### [Switch from current version of UK English](#tab/en-uk)
8585

86-
1. Update the (Default) data of that key value to **MsWb7.dll**.
86+
The following commands add or update keys in the Windows registry, to set the COM ClassIDs for the previous UK English word breaker and stemmer interfaces for LCID 2057 (`eng`).
8787

88-
1. Add a new key with the value **{e1e5ef84-c4a6-4e50-8188-99aef3de2659}** for the current stemmer.
88+
Run these commands from an elevated command prompt:
8989

90-
1. Update the (Default) data of that key value to **MsWb7.dll**.
90+
```console
91+
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\CLSID\{173C97E2-AEBE-437C-9445-01B237ABF2F6}" /ve /t REG_SZ /d "langwrbk.dll"
92+
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\CLSID\{D99F7670-7F1A-11CE-BE57-00AA0051FE20}" /ve /t REG_SZ /d "infosoft.dll"
93+
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\Language\eng" /v "WBreakerClass" /t REG_SZ /d "{173C97E2-AEBE-437C-9445-01B237ABF2F6}" /f
94+
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\Language\eng" /v "StemmerClass" /t REG_SZ /d "{D99F7670-7F1A-11CE-BE57-00AA0051FE20}" /f
95+
```
9196

92-
1. In the registry, navigate to the following node: **HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\<InstanceRoot\>\MSSearch\Language\eng**.
97+
Restart [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] to use these word breaker settings.
9398

94-
1. Update the **WBreakerClass** key value to **{9faed859-0b30-4434-ae65-412e14a16fb8}**.
99+
---
95100

96-
1. Update the **StemmerClass** key value to **{e1e5ef84-c4a6-4e50-8188-99aef3de2659}**.
101+
## Switch back from the previous English word breakers to the current English word breaker
97102

98-
1. Restart [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)].
103+
This example uses `MSSQL17.MSSQLSERVER` for the `<InstanceRoot>` value, which is the default instance for [!INCLUDE [sssql25-md](../../includes/sssql25-md.md)]. Adjust this value to match your environment.
99104

100-
#### Switch back from the previous version of the UK English word breaker to the current version
105+
### [Switch back from US English](#tab/en-us)
101106

102-
1. In the registry, navigate to the following node: **HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\<InstanceRoot\>\MSSearch\CLSID**.
107+
The following commands add or update keys in the Windows registry, to set the COM ClassIDs back from US English for LCID 1033 (`enu`).
103108

104-
1. If the following keys don't exist, then use the following steps to add a new key for the COM ClassIDs for the current UK English word breaker and stemmer interfaces for LCID 2057:
109+
Run these commands from an elevated command prompt:
105110

106-
1. Add a new key with the value **{9faed859-0b30-4434-ae65-412e14a16fb8}** for the current word breaker.
111+
```console
112+
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"
113+
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"
114+
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
115+
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
116+
```
107117

108-
1. Update the (Default) data of that key value to **MsWb7.dll**.
118+
Restart [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] to use these word breaker settings.
109119

110-
1. Add a new key with the value **{e1e5ef84-c4a6-4e50-8188-99aef3de2659}** for the current stemmer.
120+
### [Switch back from UK English](#tab/en-uk)
111121

112-
1. Update the (Default) data of that key value to **MsWb7.dll**.
122+
The following commands add or update keys in the Windows registry, to set the COM ClassIDs back from UK English for LCID 2057 (`eng`).
113123

114-
1. In the registry, navigate to the following node: **HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\<InstanceRoot\>\MSSearch\Language\eng**.
124+
Run these commands from an elevated command prompt:
115125

116-
1. Update the **WBreakerClass** key value to **{9faed859-0b30-4434-ae65-412e14a16fb8}**.
126+
```console
127+
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"
128+
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"
129+
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\Language\eng" /v "WBreakerClass" /t REG_SZ /d "{9FAED859-0B30-4434-AE65-412E14A16FB8}" /f
130+
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSearch\Language\eng" /v "StemmerClass" /t REG_SZ /d "{E1E5EF84-C4A6-4E50-8188-99AEF3DE2659}" /f
131+
```
117132

118-
1. Update the **StemmerClass** key value to **{e1e5ef84-c4a6-4e50-8188-99aef3de2659}**.
133+
Restart [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] to use these word breaker settings.
119134

120-
1. Restart [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)].
135+
---
121136

122137
## Related content
123138

124-
- [Revert word breakers used by Search to previous version (SQL Server Search)](revert-the-word-breakers-used-by-search-to-the-previous-version.md)
139+
- [Revert word breakers used by Full-Text Search to previous version](revert-the-word-breakers-used-by-search-to-the-previous-version.md)
125140
- [Full-Text Search](full-text-search.md)

0 commit comments

Comments
 (0)