Teljes szöveges indexverzió frissítése

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Ez a cikk a 2025-ös (17.x) és újabb verziók SQL Server teljes szöveges indexverzió-változását ismerteti. Ismerteti a viselkedés változásait, a szükséges migrálási lépéseket és az új összetevők bináris fájljait.

A teljes szövegű index verzióváltozásai az SQL Server 2025-ben

Az SQL Server 2025 (17.x) eltávolítja az örökölt szóelválasztó, szótőkereső és szűrő bináris fájljait az SQL Server telepítéséből. Ezeket az összetevőket modern eszközkészlettel újjáépítették, és kiterjesztett támogatást nyújtanak további nyelvekhez és dokumentumtípusokhoz. Az SQL Server 2025-tel (17.x) telepített összetevőket 2. verzió-nak nevezik. A SQL Server 2022 -es (16.x) és korábbi verzióival telepített összetevők neve 1. verzió.

Helyben végzett frissítés után a meglévő teljes szövegű indexek index_version = 1 értékkel rendelkeznek a sys.fulltext_indexes nézetben. Az újonnan létrehozott indexek a 2. verziót és az új összetevőket használják, kivéve, ha másként nem adja meg a FULLTEXT_INDEX_VERSION adatbázis-hatókörű konfigurációt.

A 2. verzió összetevőinek változásai

A 2. verzió összetevői nyelvi és dokumentumtípus-támogatást nyújtanak, új testreszabási modellt használnak, és az 1. verzió összetevőinél eltérő jogkivonat-megjelenítési eredményeket adnak vissza.

Új nyelvek támogatása

Az SQL Server 2025 (17.x) három új nyelven támogatja a teljes szöveges indexelést:

  • Finn (LCID 1035)
  • Magyar (LCID 1038)
  • Észt (LCID 1061)

Új dokumentumtípusok támogatása

Az SQL Server 2025 (17.x) alapértelmezés szerint támogatja a következő dokumentumbővítmények indexelését.

Szűrő Extension
msgfilt02.dll .msg
odffilt02.dll \, \, \
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

Nem várt eredmények

Az SQL Server 2025 (17.x) új összetevői váratlan eredményeket adhatnak vissza az alkalmazásoknak. Vegyük például az angol (LCID 1033) szóválasztót:

Időszak Találatok az előző szóelválasztóval Találatok új szótörővel
cat_dog cat_dog cat_dog
cat
dog
$100 $100
nn100usd
\$100
nn100\$
2026-01-09 2026-01-09
2026
nn2026
01
09
2026-01-09
dd20260109
2026
01
09

Testreszabási modell

A 2. verziójú teljes szöveges indexek már nem olvasnak összetevő-kezelőket a Windows beállításjegyzékből. A testreszabást egy példányspecifikus JSON-fájlon keresztül szabályozhatja. További információ: Szűrők és szóhatárolók testreszabása.

Frissítési és migrálási lehetőségek

Mivel a SQL Server 2025 (17.x) eltávolítja az összes 1-es verziójú bináris fájlt, az 1-es verziójú indexeket használó teljes szövegű lekérdezések és feltöltések meghiúsulnak a helyben végzett frissítés után. További információkért lásd: A SQL Server 2025 Database Engine funkcióinak változásai.

Használja az alábbi megközelítések egyikét az SQL Server 2025-re (17.x) vagy újabb verzióra való frissítés után, illetve az 1-es verziójú indexek kivezetésre való előkészítésekor az Azure SQL Database és az Azure SQL Managed Instance esetében.

1. verziójú indexek keresése

Futtassa a következő lekérdezést minden olyan adatbázisban, amely Full-Text Search használatával keres olyan indexeket, amelyek továbbra is az 1- es verziójú összetevőket használják:

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;

Meglévő indexek újraépítése a 2. verziójú összetevőkkel

Meglévő teljes szöveges indexek újraépítése a 2. verziójú összetevők használatához. Ellenőrizze, hogy a(z) FULLTEXT_INDEX_VERSION értéke 2-re van állítva, majd építse újra a teljes szöveges katalógusokat.

SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'FULLTEXT_INDEX_VERSION';
ALTER FULLTEXT CATALOG [FtCatalog] REBUILD;

Note

A katalógus újraépítési művelete újraépíti az összes teljes szöveges indexet. Ha szabályozni szeretné az indexek összeállításának sorrendjét, vagy csökkenteni szeretné az erőforrás-követelményeket, egyenként dobja el és hozza létre újra a teljes szöveges indexeket.

Az 1. verzió összetevőinek használata

Ezt a lehetőséget csak olyan SQL Server példányokhoz használhatja, ahol a SQL Server telepítésekor kezelheti a fájlokat.

Important

Az 1. verzió elavult a Linuxon futó SQL Serverhez. Az SQL Server 2025 (17.x) és újabb verzióiban a csomag nem tartalmazza az mssql-server-fts 1-es bináris verziót. Eltérő verziójú mssql-server-fts és mssql-server csomagok telepítése nem támogatott, és teljes körű hibákat eredményez.

Ha az alkalmazáskompatibilitás érdekében az 1-es verzión kell maradnia, állítsa be FULLTEXT_INDEX_VERSION = 1 , hogy elkerülje a 2- es verzióra való nem szándékos frissítést az újraépítés során.

ALTER DATABASE SCOPED CONFIGURATION
    SET FULLTEXT_INDEX_VERSION = 1;

Ezután másolja át a régi szóhatároló, szótövező és szűrő bináris fájljait egy régebbi példány Binn mappájából a célpéldány Binn mappájába. A nyelvenként vagy dokumentumtípusonként másolandó DLL-fájlokról és függő kódtárakról a Teljes szöveges szűrő bináris fájljai , valamint a Teljes szöveges szóhatároló és a stemmer bináris fájlok című témakörben olvashat.

Az 1-es verziójú bináris fájlok teljes készletének tömeges másolásához másolja a következő szkriptet egy nevű Copy-FulltextV1Components.ps1fájlba.

<#
.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)."

Futtassa a szkriptet egy rendszergazdai PowerShell-ablakban, ahol SourceBinn az 1- es verziójú bináris fájlokat tartalmazó SQL Server 2022 -es (16.x) vagy korábbi példány mappájának elérési Binn útja, és TargetBinn egy olyan SQL Server 2025-ös (17.x) vagy újabb példány mappájának elérési útjaBinn, amely folyamatos 1-es verziójú támogatást igényel.

.\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'

1. verzió állapota és elavultsági idővonala környezet szerint

Környezet Status Beavatkozás szükséges
SQL Server 2025 (17.x) és újabb verziók Az 1. verzió bináris fájljai törlődnek a SQL Server telepítéséből. Az 1. verziójú lekérdezések és populációk a helyszíni frissítés után meghiúsulnak. Teljes szöveges indexek újraépítése vagy újbóli létrehozása a 2- es verziójú összetevőkkel. Ha az 1-es verzióra van szüksége a kompatibilitáshoz, csak akkor használja az 1-es verziót, ha támogatott.
Azure SQL Managed Instance a SQL Server 2025-ös frissítési szabályzatban Az 1. verzió elavulása szakaszos bevezetés alatt áll. Az érintett ügyfelek rendszeres emlékeztető e-maileket kapnak a kivezetést megelőzően. Építse újra vagy hozza létre újra a 2-es verziójú összetevőkkel rendelkező teljes szöveges indexeket, mielőtt a példány érintetté válna. Ha nem tud azonnal frissíteni, forduljon Microsoft ügyfélszolgálatához.
Azure SQL Database és Azure SQL Managed Instance az „Always-up-to-date” frissítési szabályzat szerint Az 1. verziójú indexek továbbra is támogatottak, de az eltávolítást tervezik. Az újonnan létrehozott vagy újraépített indexek alapértelmezés szerint a 2. verziót használják. Vegye számba az 1-es verziójú készletet, és előre tervezze meg a 2-es verziójú komponensekkel történő újraépítéseket az állásidő minimalizálása érdekében.

Azure SQL elavulás idővonala

A következőkre vonatkozik: Azure SQL Database és Azure SQL felügyelt példány

Azure SQL Database és Azure SQL Managed Instance még nem távolítják el az 1- es bináris fájlokat. Ezeket a szolgáltatásokat fokozatosan vezetik ki, hogy elegendő idő álljon rendelkezésre a meglévő indexek újraépítésére, elsőként az Azure SQL Managed Instance esetében, a SQL Server 2025 frissítési szabályzata keretében. Az érintett ügyfelek a kivezetést megelőzően rendszeres e-mailes emlékeztetőket kapnak.

Az 1. verzió elavultatásakor az 1. verziójú indexeken lévő lekérdezések hibaüzenettel meghiúsulnak:

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.

A feltöltések a következő hibákkal sikertelenek a feltérképezési naplóban:

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.