Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
In dit artikel wordt de wijziging in de versie van de full-textindex in SQL Server 2025 (17.x) en latere versies beschreven. Hierin worden gedragswijzigingen, vereiste migratiestappen en binaire onderdelen beschreven.
Wijzigingen in de indexversie van volledige tekst in SQL Server 2025
SQL Server 2025 (17.x) verwijdert verouderde woordscheider-, stemmer- en filterbinaire bestanden uit de SQL Server-installatie. Deze onderdelen worden opnieuw opgebouwd met een moderne toolset en bieden uitgebreide ondersteuning voor meer talen en documenttypen. Onderdelen die zijn geïnstalleerd met SQL Server 2025 (17.x) worden versie 2 genoemd. Onderdelen die zijn geïnstalleerd met SQL Server 2022 (16.x) en eerdere versies worden versie 1 genoemd.
Na een in-place-upgrade hebben bestaande volledige-tekstindexen index_version = 1 in sys.fulltext_indexes. Nieuw aangemaakte indexen gebruiken versie 2 en de nieuwe componenten, tenzij u anders aangeeft met de databaseconfiguratie met bereik FULLTEXT_INDEX_VERSION.
Wijzigingen in versie 2-onderdelen
Versie 2-onderdelen voegen taal- en documenttypeondersteuning toe, gebruiken een nieuw aanpassingsmodel en kunnen verschillende tokenisatieresultaten retourneren dan versie 1-onderdelen.
Ondersteuning voor nieuwe talen
SQL Server 2025 (17.x) voegt ondersteuning toe voor indexering in volledige tekst in drie nieuwe talen:
- Fins (LCID 1035)
- Hongaars (LCID 1038)
- Estisch (LCID 1061)
Ondersteuning voor nieuwe documenttypen
SQL Server 2025 (17.x) voegt standaard ondersteuning toe voor het indexeren van de volgende documentextensies.
| Filter | Extension |
|---|---|
msgfilt02.dll |
.msg |
odffilt02.dll |
.odp, .ods, .odt |
offfilt02.dll |
.doc, .dot, .obd, .obt, .pot, .pps, .ppt, .xlb, .xlc, .xls, .xlt |
offfiltx02.dll |
.docm, .docx, .dotx, .pptm, .pptx, .xlsb, .xlsm, .xlsx, .zip |
onfilter02.dll |
.one |
Onverwachte resultaten
Nieuwe onderdelen in SQL Server 2025 (17.x) kunnen onverwachte resultaten opleveren voor toepassingen. Denk bijvoorbeeld aan de Engelse woordonderbreker (LCID 1033):
| Termijn | Resultaten met de vorige woordonderbreker | Resultaten met nieuwe woordonderbreker |
|---|---|---|
cat_dog |
cat_dog |
cat_dogcatdog |
$100 |
$100nn100usd |
\$100nn100\$ |
2026-01-09 |
2026-01-092026nn20260109 |
2026-01-09dd2026010920260109 |
Aanpassingsmodel
Versie 2 indexen voor volledige tekst lezen geen componenthandlers meer uit het Windows register. U bepaalt de aanpassing via een exemplaarspecifiek JSON-bestand. Zie Filters en woordonderbrekers aanpassen voor meer informatie.
Opties voor upgrades en migratie
Omdat SQL Server 2025 (17.x) alle binaire bestanden van versie 1 verwijdert, mislukken volledige tekstquery's en populaties die gebruikmaken van indexen van versie 1 na een in-place upgrade. Zie Belangrijke wijzigingen in database-enginefuncties in SQL Server 2025 voor meer informatie.
Gebruik een van de volgende methoden na een upgrade naar SQL Server 2025 (17.x) of nieuwere versies, of wanneer u indexen van versie 1 voorbereidt op afschaffing in Azure SQL Database en Azure SQL Managed Instance.
Indexen van versie 1 zoeken
Voer de volgende query uit in elke database die gebruikmaakt van Full-Text Zoeken om indexen te vinden die nog steeds versie 1-onderdelen gebruiken:
SELECT fc.[name] AS catalog_name,
OBJECT_SCHEMA_NAME(fi.object_id) AS schema_name,
OBJECT_NAME(fi.object_id) AS table_name,
fi.object_id,
fi.*
FROM sys.fulltext_indexes AS fi
INNER JOIN sys.fulltext_catalogs AS fc
ON fi.fulltext_catalog_id = fc.fulltext_catalog_id
WHERE fi.index_version = 1;
Bestaande indexen herbouwen met versie 2-onderdelen
Bouw bestaande volledige-tekstindexen opnieuw om versie 2-onderdelen te gebruiken. Controleer of dit FULLTEXT_INDEX_VERSION is ingesteld op 2en bouw vervolgens catalogussen met volledige tekst opnieuw.
SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'FULLTEXT_INDEX_VERSION';
ALTER FULLTEXT CATALOG [FtCatalog] REBUILD;
Note
Met een catalogus herbouwbewerking worden alle volledige-tekstindexen opnieuw opgebouwd. Als u de volgorde van de indexbuild wilt beheren of de resourcevereisten wilt verminderen, kunt u de indexen in volledige tekst afzonderlijk verwijderen en opnieuw maken .
Onderdelen van versie 1 blijven gebruiken
Gebruik deze optie alleen voor SQL Server exemplaren waar u bestanden in de SQL Server-installatie kunt beheren.
Important
Versie 1 is afgeschaft voor SQL Server in Linux. In SQL Server 2025 (17.x) en latere versies bevat het mssql-server-fts pakket geen binaire bestanden van versie 1. Het installeren van niet-overeenkomende versies van de mssql-server-fts en mssql-server pakketten wordt niet ondersteund en resulteert in fouten in volledige tekst.
Als u vanwege toepassingscompatibiliteit versie 1 moet blijven gebruiken, stel FULLTEXT_INDEX_VERSION = 1 dan in om een onbedoelde upgrade naar versie 2 bij het opnieuw bouwen te voorkomen.
ALTER DATABASE SCOPED CONFIGURATION
SET FULLTEXT_INDEX_VERSION = 1;
Kopieer vervolgens de oude woordafbreker-, stemmer- en filterbinaire bestanden uit de map Binn van een oudere instantie naar de map Binn van de doelinstantie. Zie binaire bestanden voor volledige-tekstfilters en binaire bestanden voor volledige-tekst woordafbreking en stemming voor informatie over welke DLL's en afhankelijke bibliotheken u per taal of documenttype moet kopiëren.
Als u de volledige set binaire bestanden van versie 1 bulksgewijs wilt kopiëren, kopieert u het volgende script naar een bestand met de naam Copy-FulltextV1Components.ps1.
<#
.SYNOPSIS
Copies the Full-Text V1 components from one SQL install's Binn folder to another.
Existing files are never overwritten; each file reports OK, SKIP or FAIL.
.EXAMPLE
.\Copy-FulltextV1Components.ps1 `
-SourceBinn 'C:\Program Files\Microsoft SQL Server\MSSQL16.INST1\MSSQL\Binn' `
-TargetBinn 'C:\Program Files\Microsoft SQL Server\MSSQL17.INST2\MSSQL\Binn'
#>
param(
[Parameter(Mandatory)] [string] $SourceBinn,
[Parameter(Mandatory)] [string] $TargetBinn
)
$components = @(
'infosoft.dll',
'LangWrbk.dll',
'korwbrkr.dll',
'korwbrkr.lex',
'msfte.dll',
'xmlfilt.dll',
'MsWb7.dll',
'MsWb70011.dll',
'MsWb7001e.dll',
'MsWb70404.dll',
'MsWb70804.dll',
'NaturalLanguage6.dll',
'NL7Data0011.dll',
'NL7Data001e.dll',
'NL7Data0404.dll',
'NL7Data0804.dll',
'NL7Lexicons0011.dll',
'NL7Lexicons001e.dll',
'NL7Lexicons0404.dll',
'NL7Lexicons0804.dll',
'NL7Models0011.dll',
'NL7Models001e.dll',
'NL7Models0404.dll',
'NL7Models0804.dll',
'nlhtml.dll',
'nls400.dll',
'NlsData0000.dll',
'NlsData0002.dll',
'NlsData0003.dll',
'NlsData000a.dll',
'NlsData000c.dll',
'NlsData000d.dll',
'NlsData000f.dll',
'NlsData0010.dll',
'NlsData0018.dll',
'NlsData001a.dll',
'NlsData001b.dll',
'NlsData001D.dll',
'NlsData0020.dll',
'NlsData0021.dll',
'NlsData0022.dll',
'NlsData0024.dll',
'NlsData0026.dll',
'NlsData0027.dll',
'NlsData002a.dll',
'NlsData0039.dll',
'NlsData003e.dll',
'NlsData0045.dll',
'NlsData0046.dll',
'NlsData0047.dll',
'NlsData0049.dll',
'NlsData004a.dll',
'NlsData004b.dll',
'NlsData004c.dll',
'NlsData004e.dll',
'NlsData0414.dll',
'NlsData0416.dll',
'NlsData0816.dll',
'NlsData081a.dll',
'NlsData0c1a.dll',
'Nlsdl.dll',
'NlsLexicons0002.dll',
'NlsLexicons0003.dll',
'NlsLexicons000a.dll',
'NlsLexicons000c.dll',
'NlsLexicons000d.dll',
'NlsLexicons000f.dll',
'NlsLexicons0010.dll',
'NlsLexicons0018.dll',
'NlsLexicons001a.dll',
'NlsLexicons001b.dll',
'NlsLexicons001D.dll',
'NlsLexicons0020.dll',
'NlsLexicons0021.dll',
'NlsLexicons0022.dll',
'NlsLexicons0024.dll',
'NlsLexicons0026.dll',
'NlsLexicons0027.dll',
'NlsLexicons002a.dll',
'NlsLexicons0039.dll',
'NlsLexicons003e.dll',
'NlsLexicons0045.dll',
'NlsLexicons0046.dll',
'NlsLexicons0047.dll',
'NlsLexicons0049.dll',
'NlsLexicons004a.dll',
'NlsLexicons004b.dll',
'NlsLexicons004c.dll',
'NlsLexicons004e.dll',
'NlsLexicons0414.dll',
'NlsLexicons0416.dll',
'NlsLexicons0816.dll',
'NlsLexicons081a.dll',
'NlsLexicons0c1a.dll',
'Prm0001.bin',
'Prm0005.bin',
'Prm0006.bin',
'Prm0007.bin',
'Prm0008.bin',
'Prm0009.bin',
'Prm0013.bin',
'Prm0015.bin',
'Prm0019.bin',
'Prm001f.bin'
)
if (-not (Test-Path -LiteralPath $SourceBinn -PathType Container)) { throw "Source Binn folder not found: $SourceBinn" }
if (-not (Test-Path -LiteralPath $TargetBinn -PathType Container)) { throw "Target Binn folder not found: $TargetBinn" }
if ((Split-Path -Leaf $SourceBinn) -ne 'Binn') { throw "Source path must be a Binn folder: $SourceBinn" }
if ((Split-Path -Leaf $TargetBinn) -ne 'Binn') { throw "Target path must be a Binn folder: $TargetBinn" }
$ok = 0; $skip = 0; $fail = 0
foreach ($name in $components) {
$srcFile = Join-Path $SourceBinn $name
$dstFile = Join-Path $TargetBinn $name
if (-not (Test-Path -LiteralPath $srcFile)) {
Write-Host "[FAIL] $name (source not found)" -ForegroundColor Red
$fail++
}
elseif (Test-Path -LiteralPath $dstFile) {
Write-Warning "[SKIP] $name already exists in target; not overwritten"
$skip++
}
else {
try {
Copy-Item -LiteralPath $srcFile -Destination $dstFile -ErrorAction Stop
Write-Host "[ OK ] $name" -ForegroundColor Green
$ok++
}
catch {
Write-Host "[FAIL] $name ($($_.Exception.Message))" -ForegroundColor Red
$fail++
}
}
}
Write-Host ""
Write-Host "Copied $ok, skipped $skip, failed $fail of $($components.Count)."
Voer het script uit in een PowerShell-beheervenster. Dit SourceBinn is het pad naar de Binn map van een SQL Server 2022 (16.x) of een eerdere instantie met binaire versie 1-bestanden. TargetBinn Dit is het pad naar de Binn map van een SQL Server 2025 (17.x) of hoger waarvoor ondersteuning van versie 1 is vereist.
.\Copy-FulltextV1Components.ps1 `
-SourceBinn 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Binn' `
-TargetBinn 'C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Binn'
Tijdlijn voor status en afschaffing van versie 1 per omgeving
| Milieu | Status | Vereiste actie |
|---|---|---|
| SQL Server 2025 (17.x) en latere versies | Binaire bestanden van versie 1 worden verwijderd uit de SQL Server installatie. Query's en populaties van versie 1 mislukken na een in-place upgrade. | Bouw volledige-tekstindexen opnieuw of maak deze opnieuw met versie 2-onderdelen. Als u versie 1 voor compatibiliteit nodig hebt, gebruikt u versie 1 alleen als dit wordt ondersteund. |
| Azure SQL Managed Instance in het kader van het updatebeleid van SQL Server 2025 | Afschaffing van versie 1 bevindt zich in gefaseerde implementatie. Betrokken klanten ontvangen periodieke e-mailherinneringen voordat ze worden afgeschaft. | Herbouw of maak full-textindexen opnieuw aan met onderdelen van versie 2 voordat uw instantie wordt beïnvloed. Als u niet direct kunt upgraden, neemt u contact op met Microsoft ondersteuning. |
| Azure SQL Database en Azure SQL Managed Instance met het updatebeleid 'Altijd up-to-date' | Indexen van versie 1 worden nog steeds ondersteund, maar verwijdering is gepland. Nieuw gemaakte of opnieuw opgebouwde indexen worden standaard ingesteld op het gebruik van versie 2. | Maak een inventaris van indexen van versie 1 en plan rebuilds van tevoren met onderdelen van versie 2 om uitvaltijd te minimaliseren. |
tijdlijn voor Azure SQL afschaffing
van toepassing op: Azure SQL Database en Azure SQL Managed Instance
Azure SQL Database en Azure SQL Managed Instance nog geen binaire bestanden van versie 1 verwijderen. Deze aanbiedingen ondergaan een gefaseerde afschaffing om tijd te bieden voor het herbouwen van bestaande indexen, te beginnen met Azure SQL Managed Instance op het updatebeleid van SQL Server 2025. Betrokken klanten ontvangen voorafgaand aan de uitfasering periodieke e-mailherinneringen.
Nadat versie 1 is afgeschaft, mislukken query's op indexen van versie 1 met het foutbericht:
Msg 30011, Level 16, State 1, Line 37
Full-text index version 1 is not supported by this instance configuration. Rebuild or recreate the index with database scoped configuration FULLTEXT_INDEX_VERSION = 2. For more information, see https://aka.ms/fts-version-upgrade. If unable to upgrade, contact support for assistance.
En populaties mislukken met de volgende foutmeldingen in het crawl-logboek:
Error: 30011, Severity: 16, State: 1.
Full-text index version 1 is not supported by this instance configuration. Rebuild or recreate the index with database scoped configuration FULLTEXT_INDEX_VERSION = 2. For more information, see https://aka.ms/fts-version-upgrade. If unable to upgrade, contact support for assistance.
Error: 30059, Severity: 16, State: 1.
A fatal error occurred during a full-text population and caused the population to be cancelled. Population type is: <population_type>; database name is <database_name> (id: <database_id>); catalog name is <catalog_name> (id: <catalog_id>); table name <table_name> (id: <table_id>). Fix the errors that are logged in the full-text crawl log. Then, resume the population. The basic Transact-SQL syntax for this is: ALTER FULLTEXT INDEX ON table_name RESUME POPULATION.
Verwante onderwerpen
- Filters en woordonderbrekers aanpassen
- Filters configureren en beheren
- Woordonderbrekers en stemmers configureren en beheren
- sys.fulltext_indexes
- ALTER DATABASE SCOPED CONFIGURATION
- Binaire bestanden voor volledige tekstfilters
- Woordonderbreker voor volledige tekst en binaire bestanden voor stemmer's