Skip to content

Commit 7e3b5c2

Browse files
authored
Merge pull request #36214 from pnikhare/sql-fulltext-version1
List version 1 binaries and behavior changes to Full text search
2 parents 937ab72 + b55612d commit 7e3b5c2

7 files changed

Lines changed: 183 additions & 18 deletions

docs/database-engine/breaking-changes-to-database-engine-features-in-sql-server-2025.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ description: Breaking changes to database engine features in SQL Server 2025.
55
author: MikeRayMSFT
66
ms.author: mikeray
77
ms.reviewer: randolphwest, mathoma
8-
ms.date: 01/08/2026
8+
ms.date: 01/12/2026
99
ms.service: sql
1010
ms.subservice: release-landing
11-
ms.topic: concept-article
11+
ms.topic: troubleshooting-general
1212
ms.custom:
1313
- ignite-2025
1414
helpviewer_keywords:
@@ -117,7 +117,7 @@ For information about how to connect securely to [!INCLUDE [sssql25-md](../inclu
117117

118118
## Full-Text queries and populations fail after upgrade
119119

120-
[!INCLUDE [sssql25-md](../includes/sssql25-md.md)] removes all legacy word breaker and filter binaries used by [Full-Text Search](../relational-databases/search/full-text-search.md). These components are rebuilt with a modern toolset and offer expanded support for more languages and document types. Existing indexes after upgrade are designated with `index_version = 1` as per [sys.fulltext_indexes](../relational-databases/system-catalog-views/sys-fulltext-indexes-transact-sql.md). Newly created indexes are version 2 and use the new components, unless you specify otherwise by using the [FULLTEXT_INDEX_VERSION](../t-sql/statements/alter-database-scoped-configuration-transact-sql.md#fulltext_index_version) database scoped configuration.
120+
[!INCLUDE [sssql25-md](../includes/sssql25-md.md)] removes all legacy word breaker and filter binaries used by [Full-Text Search](../relational-databases/search/full-text-search.md). These components are rebuilt with a modern toolset and offer expanded support for more languages and document types. For more information, see [Behavior changes in Full-Text Search](../relational-databases/search/behavior-changes-full-text-search.md). Existing indexes after upgrade are designated with `index_version = 1` as per [sys.fulltext_indexes](../relational-databases/system-catalog-views/sys-fulltext-indexes-transact-sql.md). Newly created indexes are version 2 and use the new components, unless you specify otherwise by using the [FULLTEXT_INDEX_VERSION](../t-sql/statements/alter-database-scoped-configuration-transact-sql.md#fulltext_index_version) database scoped configuration.
121121

122122
Any Full-Text query on a version 1 index fails to find the word breaker binaries on disk immediately after upgrade:
123123

@@ -160,7 +160,7 @@ ALTER DATABASE SCOPED CONFIGURATION
160160
SET FULLTEXT_INDEX_VERSION = 1;
161161
```
162162

163-
Next, copy the legacy word breaker and filter binaries from an older instance to the target instance's `binn` folder.
163+
Next, copy the legacy word breaker and filter binaries from an older instance to the target instance's `Binn` folder.
164164

165165
## Related content
166166

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
title: "Behavior Changes in Full-Text Search"
3+
titleSuffix: SQL Server Full-Text Search
4+
description: Learn about behavior changes in SQL Server full-text search features.
5+
author: rwestMSFT
6+
ms.author: randolphwest
7+
ms.date: 01/12/2026
8+
ms.service: sql
9+
ms.subservice: search
10+
ms.topic: concept-article
11+
helpviewer_keywords:
12+
- "full-text search [SQL Server], word breakers"
13+
- "full-text search [SQL Server], filters"
14+
- "filters [full-text search]"
15+
- "word breakers [full-text search]"
16+
monikerRange: ">=sql-server-linux-ver17 || >=sql-server-ver17"
17+
---
18+
19+
# Behavior changes in Full-Text Search
20+
21+
This article describes behavior changes in full-text search. Behavior changes affect how features work or interact in recent versions of [!INCLUDE [ssnoversion-md](../../includes/ssnoversion-md.md)] as compared to earlier versions.
22+
23+
## Behavior changes in Full-Text Search in SQL Server 2025
24+
25+
[!INCLUDE [sssql25-md](../../includes/sssql25-md.md)] replaces legacy word breakers and filters with new and enhanced binaries. To use the new components, rebuild your existing full-text indexes.
26+
27+
### Support for new languages
28+
29+
[!INCLUDE [sssql25-md](../../includes/sssql25-md.md)] adds support for full-text indexing in three new languages:
30+
31+
- Finnish (LCID 1035)
32+
- Hungarian (LCID 1038)
33+
- Estonian (LCID 1061)
34+
35+
### Support for default document extension indexing
36+
37+
[!INCLUDE [sssql25-md](../../includes/sssql25-md.md)] adds support for indexing the following document extensions by default.
38+
39+
| Filter | Extension |
40+
| --- | --- |
41+
| `msgfilt02.dll` | `.msg` |
42+
| `odffilt02.dll` | `.odp`, `.ods`, `.odt` |
43+
| `offfilt02.dll` | `.doc`, `.dot`, `.obd`, `.obt`, `.pot`, `.pps`, `.ppt`, `.xlb`, `.xlc`, `.xls`, `.xlt` |
44+
| `offfiltx02.dll` | `.docm`, `.docx`, `.dotx`, `.pptm`, `.pptx`, `.xlsb`, `.xlsm`, `.xlsx`, `.zip` |
45+
| `onfilter02.dll` | `.one` |
46+
47+
### Unexpected results
48+
49+
New components in [!INCLUDE [sssql25-md](../../includes/sssql25-md.md)] might return unexpected results to applications. For example, consider the English (LCID 1033) word breaker:
50+
51+
| Term | Results with previous word breaker | Results with new word breaker |
52+
| --- | --- | --- |
53+
| `cat_dog` | `cat_dog` | `cat_dog`<br />`cat`<br />`dog` |
54+
| `$100` | `$100`<br />`nn100usd` | `\$100`<br />`nn100\$` |
55+
| `2026-01-09` | `2026-01-09`<br />`2026`<br />`nn2026`<br />`01`<br />`09` | `2026-01-09`<br />`dd20260109`<br />`2026`<br />`01`<br />`09` |
56+
57+
## Related content
58+
59+
- [View or change registered filters and word breakers (SQL Server Search)](view-or-change-registered-filters-and-word-breakers.md)
60+
- [Configure and Manage Filters for Search](configure-and-manage-filters-for-search.md)
61+
- [Configure and manage word breakers and stemmers for search (SQL Server)](configure-and-manage-word-breakers-and-stemmers-for-search.md)

docs/relational-databases/search/change-the-word-breaker-used-for-us-english-and-uk-english.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: Change the word breaker used for US English and UK English in SQL S
55
author: rwestMSFT
66
ms.author: randolphwest
77
ms.reviewer: mikeray
8-
ms.date: 12/08/2025
8+
ms.date: 01/12/2026
99
ms.service: sql
1010
ms.subservice: search
1111
ms.topic: how-to
@@ -15,24 +15,26 @@ monikerRange: "=azuresqldb-current || >=sql-server-2016 || >=sql-server-linux-20
1515

1616
[!INCLUDE [sssql25-md](../../includes/applies-to-version/sqlserver2025.md)]
1717

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.
18+
[!INCLUDE [sssql25-md](../../includes/sssql25-md.md)] installs new word breakers and filters, replacing all the previous versions of these components. For more information, see [Behavior changes in Full-Text Search](behavior-changes-full-text-search.md).
1919

20-
## Switch from version 2 to version 1 component
20+
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.
21+
22+
## Switch from version 2 to version 1 components
2123

2224
> [!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.
25+
> You should 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.
2426
25-
The default database scoped configuration for full-text indexes is version 2. Change it to version 1.
27+
The default database scoped configuration for full-text indexes is version 2. You can change it to version 1 with the following Transact-SQL statement.
2628

2729
```sql
2830
ALTER DATABASE SCOPED CONFIGURATION SET FULLTEXT_INDEX_VERSION = 1;
2931
```
3032

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.
33+
Legacy version 1 word breakers and filters are removed from [!INCLUDE [sssql25-md](../../includes/sssql25-md.md)]. You must copy these binaries from a previous instance's `C:\Program Files\Microsoft SQL Server\MSSQL<nn>.<instance-name>\MSSQL\Binn` directory, where `<nn>` is the [product version](../../sql-server/install/file-locations-for-default-and-named-instances-of-sql-server.md#shared-files-for-all-instances-of-sql-server). For more information, see [List of version 1 filters and word breakers](full-text-index-version-1-binaries.md).
3234

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.
35+
For existing indexes, verify the version 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.
3436

35-
## Switch from version 1 to version 2 component
37+
## Switch from version 1 to version 2 components
3638

3739
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.
3840

@@ -47,7 +49,7 @@ ALTER FULLTEXT CATALOG [FtCatalog] REBUILD;
4749

4850
**Applies to**: [!INCLUDE [sssql22-md](../../includes/sssql22-md.md)] and earlier versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]
4951

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).
52+
[!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 in Full-Text Search](/previous-versions/sql/2014/database-engine/behavior-changes-to-full-text-search#behavior-changes-in-full-text-search-in--1).
5153

5254
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.
5355

0 commit comments

Comments
 (0)