Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Bu makalede, SQL Server 2025 (17.x) ve sonraki sürümlerde tam metin dizini sürümü değişikliği açıklanmaktadır. Davranış değişikliklerini, gerekli geçiş adımlarını ve yeni bileşen ikili dosyalarını kapsar.
SQL Server 2025'te tam metin dizini sürümü değişiklikleri
SQL Server 2025 (17.x), eski sözcük ayırıcı, kök bulucu ve filtre ikili dosyalarını SQL Server kurulumundan kaldırır. Bu bileşenler modern bir araç takımıyla yeniden oluşturulur ve daha fazla dil ve belge türü için genişletilmiş destek sunar. SQL Server 2025 (17.x) ile yüklenen bileşenler sürüm 2 olarak adlandırılır. SQL Server 2022 (16.x) ve önceki sürümlerle yüklenen bileşenler sürüm 1 olarak adlandırılır.
Yerinde yükseltmeden sonra, mevcut tam metin dizinleri index_version = 1 içinde değerine sahiptir. Yeni oluşturulan dizinler , FULLTEXT_INDEX_VERSION veritabanı kapsamlı yapılandırmasını kullanarak aksini belirtmediğiniz sürece sürüm 2'yi ve yeni bileşenleri kullanır.
Sürüm 2 bileşen değişiklikleri
Sürüm 2 bileşenleri dil ve belge türü desteği ekler, yeni bir özelleştirme modeli kullanır ve sürüm 1 bileşenlerinden farklı belirteçleştirme sonuçları döndürebilir.
Yeni diller için destek
SQL Server 2025 (17.x), üç yeni dilde tam metin dizini oluşturma desteği ekler:
- Fince (LCID 1035)
- Macarca (LCID 1038)
- Estonca (LCID 1061)
Yeni belge türleri için destek
SQL Server 2025 (17.x), varsayılan olarak aşağıdaki belge uzantılarının dizinini oluşturmak için destek ekler.
| Filtre | 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 |
Beklenmeyen sonuçlar
SQL Server 2025'teki (17.x) yeni bileşenler uygulamalara beklenmeyen sonuçlar döndürebilir. Örneğin, İngilizce (LCID 1033) sözcük ayırıcısını göz önünde bulundurun:
| Süre | Önceki sözcük ayırıcı ile elde edilen sonuçlar | Yeni sözcük ayırıcı ile sonuçlar |
|---|---|---|
cat_dog |
cat_dog |
cat_dogcatdog |
$100 |
$100nn100usd |
\$100nn100\$ |
2026-01-09 |
2026-01-092026nn20260109 |
2026-01-09dd2026010920260109 |
Özelleştirme modeli
Sürüm 2 tam metin dizinleri artık Windows kayıt defterinden bileşen işleyicilerini okumaz. Özelleştirmeyi örneğe özgü bir JSON dosyası aracılığıyla denetleyebilirsiniz. Daha fazla bilgi için bkz. Filtreleri ve sözcük ayırıcıları özelleştirme.
Yükseltme ve geçiş seçenekleri
SQL Server 2025 (17.x) tüm sürüm 1 ikili dosyalarını kaldırdığından, tam metin sorguları ve sürüm 1 dizinlerini kullanan popülasyonlar yerinde yükseltmeden sonra başarısız olur. Daha fazla bilgi için bkz SQL Server 2025'te Veritabanı Motoru özelliklerinde önemli değişiklikler.
SQL Server 2025 (17.x) veya sonraki sürümlerine yükselttikten sonra ya da sürüm 1 dizinlerini Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği kullanımdan kaldıracak şekilde hazırladıktan sonra aşağıdaki yaklaşımlardan birini kullanın.
Sürüm 1 dizinlerini bulma
Sürüm 1 bileşenlerini kullanmaya devam eden dizinleri bulmak için Full-Text Search kullanan her veritabanında aşağıdaki sorguyu çalıştırın:
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;
Sürüm 2 bileşenleriyle mevcut dizinleri yeniden oluşturma
Sürüm 2 bileşenlerini kullanmak için mevcut tam metin dizinlerini yeniden oluşturun.
FULLTEXT_INDEX_VERSION öğesinin 2 olarak ayarlandığını doğrulayın ve ardından tam metin kataloglarını yeniden oluşturun.
SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'FULLTEXT_INDEX_VERSION';
ALTER FULLTEXT CATALOG [FtCatalog] REBUILD;
Note
Katalog yeniden oluşturma işlemi tüm tam metin dizinlerini yeniden oluşturur. Dizin derlemesinin sırasını denetlemek veya kaynak gereksinimlerini azaltmak istiyorsanız, tam metin dizinlerini tek tek bırakın ve yeniden oluşturun .
Sürüm 1 bileşenlerini kullanmaya devam edin
Bu seçeneği yalnızca SQL Server yüklemesindeki dosyaları yönetebileceğiniz SQL Server örnekler için kullanın.
Important
Sürüm 1, Linux üzerinde SQL Server için kullanım dışıdır. SQL Server 2025 (17.x) ve sonraki sürümlerinde paket sürüm mssql-server-fts 1 ikili dosyalarını içermez. ve mssql-server-fts paketlerinin mssql-server eşleşmeyen sürümlerini yüklemeye çalışmak desteklenmez ve tam metin hatalarıyla sonuçlanır.
Uygulama uyumluluğu için sürüm 1'de kalmanız gerekiyorsa, yeniden derleme sırasında istenmeyen sürüm 2'ye yükseltmeyi önlemek için ayarlayın FULLTEXT_INDEX_VERSION = 1 .
ALTER DATABASE SCOPED CONFIGURATION
SET FULLTEXT_INDEX_VERSION = 1;
Ardından eski sözcük ayırıcı, kökleyici ve filtre ikili dosyalarını eski bir örneğin Binn klasöründen hedef örneğin Binn klasörüne kopyalayın. Her dil veya belge türü için kopyalamanız gereken DLL'ler ve bağımlı kitaplıklarla ilgili başvuru için Tam metin filtre ikili dosyaları ve Tam metin sözcük ayırıcı ve kök bulucu ikili dosyaları konularına bakın.
Sürüm 1 ikili dosyalarının tüm kümesini toplu olarak kopyalamak için aşağıdaki betiği Copy-FulltextV1Components.ps1 adlı bir dosyaya kopyalayın.
<#
.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)."
Betiği bir yönetici PowerShell penceresinde çalıştırın; burada SourceBinn sürüm 1 ikili dosyalarını içeren bir SQL Server 2022 (16.x) veya önceki bir örneğin klasörünün yoludur Binn ve TargetBinn SQL Server 2025 (17.x) veya sonraki bir örneğin sürekli sürüm 1 desteği gerektiren klasörünün yoludurBinn.
.\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'
Sürüm 1 durumu ve ortama göre kullanımdan kaldırma zaman çizelgesi
| Environment | Durum | Eylem Gerekiyor |
|---|---|---|
| SQL Server 2025 (17.x) ve sonraki sürümleri | Sürüm 1 ikili dosyaları SQL Server kurulumundan kaldırılır. Sürüm 1 sorguları ve popülasyonları yerinde yükseltmeden sonra çalışmaz. | Tam metin dizinlerini 2. sürüm bileşenlerini kullanarak yeniden derleyin veya yeniden oluşturun. Uyumluluk için sürüm 1'e ihtiyacınız varsa, yalnızca desteklendiği yerlerde sürüm 1'i kullanın. |
| SQL Server 2025 güncelleştirme ilkesindeki Azure SQL Yönetilen Örneği | Sürüm 1'in kullanımdan kaldırılması aşamalı olarak kullanıma sunuluyor. Etkilenen müşteriler kullanımdan kaldırilmeden önce düzenli olarak e-posta anımsatıcıları alır. | Örneğiniz etkilenmeden önce tam metin dizinlerinizi sürüm 2 bileşenlerini kullanarak yeniden derleyin veya yeniden oluşturun. Hemen yükseltemiyorsanız Microsoft desteğine başvurun. |
| "Always-up-to-date" güncelleştirme ilkesi kapsamındaki Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği | Sürüm 1 dizinleri bugün hala desteklenmektedir, ancak kaldırma planlanır. Yeni oluşturulan veya yeniden oluşturulan dizinler varsayılan olarak sürüm 2'yi kullanmaya başlar. | Envanter sürüm 1, kesinti süresini en aza indirmek için sürüm 2 bileşenleriyle yeniden oluşturmayı önceden dizinler ve planlar. |
Azure SQL kullanımdan kaldırma zaman çizelgesi
Şunlar için geçerlidir: Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği
Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği henüz sürüm 1 ikili dosyalarını kaldırmaz. Bu sunular, mevcut dizinlerin yeniden oluşturulmasına zaman tanımak amacıyla, SQL Server 2025 güncelleştirme ilkesi üzerindeki Azure SQL Yönetilen Örneği ile başlayarak aşamalı olarak kullanımdan kaldırılır. Etkilenen müşteriler, kullanımdan kaldırılana kadar düzenli olarak e-posta anımsatıcıları alır.
Sürüm 1 kullanım dışı bırakıldıktan sonra, sürüm 1 dizinleri üzerindeki sorgular şu hata iletisiyle başarısız olur:
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.
Ve popülasyonlar gezinme günlüğünde aşağıdaki hatalarla başarısız olur:
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.