Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Este artigo descreve a alteração da versão do índice de texto completo no SQL Server 2025 (17.x) e versões posteriores. Ele aborda alterações de comportamento, etapas de migração necessárias e novos binários de componente.
Alterações na versão do índice de texto completo no SQL Server 2025
SQL Server 2025 (17.x) remove o separador de palavras herdado, o lematizador e os binários de filtro da instalação do SQL Server. Esses componentes são recriados com um conjunto de ferramentas moderno e oferecem suporte expandido para mais idiomas e tipos de documentos. Os componentes instalados com SQL Server 2025 (17.x) são chamados de versão 2. Os componentes instalados com SQL Server 2022 (16.x) e versões anteriores são chamados de versão 1.
Após uma atualização no local, os índices de texto completo existentes têm index_version = 1 em sys.fulltext_indexes. Os índices recém-criados usam a versão 2 e os novos componentes, a menos que você especifique o contrário por meio da configuração no escopo do banco de dados FULLTEXT_INDEX_VERSION.
Alterações nos componentes da versão 2
Os componentes da versão 2 adicionam suporte a idiomas e tipos de documento, usam um novo modelo de personalização e podem retornar resultados de tokens diferentes dos componentes da versão 1.
Suporte para novos idiomas
O SQL Server 2025 (17.x) adiciona suporte para indexação de texto completo em três novos idiomas:
- Finlandês (LCID 1035)
- Húngaro (LCID 1038)
- Estoniano (LCID 1061)
Suporte para novos tipos de documento
O SQL Server 2025 (17.x) adiciona suporte para indexar, por padrão, as seguintes extensões de documento.
| 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 |
Resultados inesperados
Novos componentes no SQL Server 2025 (17.x) podem retornar resultados inesperados para aplicativos. Por exemplo, considere o separador de palavras inglês (LCID 1033):
| Prazo | Resultados com separador de palavras anterior | Resultados com novo separador de palavras |
|---|---|---|
cat_dog |
cat_dog |
cat_dogcatdog |
$100 |
$100nn100usd |
\$100nn100\$ |
2026-01-09 |
2026-01-092026nn20260109 |
2026-01-09dd2026010920260109 |
Modelo de personalização
Os índices de texto completo da versão 2 não leem mais os manipuladores de componentes do registro Windows. Você controla a personalização por meio de um arquivo JSON específico da instância. Para obter mais informações, consulte Exibir ou alterar filtros registrados e separadores de palavras.
Opções de atualização e migração
Como o SQL Server 2025 (17.x) remove todos os binários da versão 1, as consultas de pesquisa de texto completo e os preenchimentos que usam índices da versão 1 falham após uma atualização local. Para obter mais informações, consulte Alterações significativas nos recursos do Mecanismo de Banco de Dados no SQL Server 2025.
Use uma das abordagens a seguir após a atualização para SQL Server 2025 (17.x) ou versões posteriores ou ao preparar índices da versão 1 para substituição em Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure.
Localizar índices da versão 1
Execute a consulta a seguir em cada banco de dados que usa Pesquisa de Texto Completo para encontrar índices que ainda usam componentes da versão 1:
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;
Recompilar índices existentes com componentes da versão 2
Recompile os índices de texto completo existentes para usar componentes da versão 2. Verifique se FULLTEXT_INDEX_VERSION está definido como 2 e, em seguida, reconstrua os catálogos de texto completo.
SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'FULLTEXT_INDEX_VERSION';
ALTER FULLTEXT CATALOG [FtCatalog] REBUILD;
Note
Uma operação de recompilação de catálogo recria todos os índices de texto completo. Se você quiser controlar a ordem de criação do índice ou reduzir os requisitos de recursos, exclua e recrie os índices de texto completo individualmente.
Continuar usando componentes da versão 1
Use esta opção apenas para instâncias do SQL Server em que você pode gerenciar arquivos na instalação do SQL Server.
Importante
A versão 1 está obsoleta para o SQL Server no Linux. No SQL Server 2025 (17.x) e versões posteriores, o mssql-server-fts pacote não inclui binários da versão 1. A tentativa de instalar versões incompatíveis dos pacotes mssql-server-fts e mssql-server não é suportada e resulta em falhas completas no texto.
Se você precisar permanecer na versão 1 para compatibilidade do aplicativo, defina FULLTEXT_INDEX_VERSION = 1 para evitar uma atualização não intencional para a versão 2 durante a recompilação.
ALTER DATABASE SCOPED CONFIGURATION
SET FULLTEXT_INDEX_VERSION = 1;
Em seguida, copie o separador de palavras herdado, o lematizador e os binários de filtro da pasta de Binn uma instância mais antiga para a pasta da instância de Binn destino. Consulte Filtros e separadores de palavras na Pesquisa de Texto Completo do SQL Server para saber quais DLLs e bibliotecas dependentes precisam ser copiadas por idioma ou tipo de documento.
Para copiar em massa o conjunto completo de binários da versão 1, copie o script a seguir para um arquivo chamado 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)."
Execute o script em uma janela do PowerShell de administrador, onde SourceBinn está o caminho para a Binn pasta de um SQL Server 2022 (16.x) ou instância anterior que contém binários da versão 1 e TargetBinn é o caminho para a Binn pasta de uma instância SQL Server 2025 (17.x) ou posterior que precisa de suporte contínuo à versão 1.
.\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'
Status da versão 1 e linha do tempo de substituição por ambiente
| Ambiente | Status | Ação necessária |
|---|---|---|
| SQL Server 2025 (17.x) e versões posteriores | Os binários da versão 1 são removidos da instalação do SQL Server. As consultas e populações da versão 1 falham após a atualização in-loco. | Recompile ou recrie índices de texto completo com componentes da versão 2. Se você precisar da versão 1 para compatibilidade, use a versão 1 somente quando houver suporte. |
| Instância Gerenciada de SQL do Azure na política de atualização do SQL Server 2025 | A descontinuação da versão 1 está sendo implementada gradualmente. Os clientes afetados recebem lembretes periódicos por e-mail antes da descontinuação. | Recompile ou recrie índices de texto completo com componentes da versão 2 antes que sua instância seja afetada. Se não for possível atualizar imediatamente, entre em contato com Microsoft suporte. |
| Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure na política de atualização "Always-up-to-date" | Os índices da versão 1 ainda têm suporte hoje, mas a remoção está planejada. Os índices recém-criados ou recriados passarão a usar a versão 2 por padrão. | A versão 1 do inventário cria índices e recria planos antecipadamente com componentes da versão 2 para minimizar o tempo de inatividade. |
Cronograma de descontinuação do SQL do Azure
Aplica-se a: Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure
Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure ainda não removem binários da versão 1. Essas ofertas passam por uma descontinuação gradual para dar tempo de recriar os índices existentes, a começar pelo Instância Gerenciada de SQL do Azure com a política de atualização do SQL Server 2025. Os clientes afetados recebem lembretes periódicos por e-mail antes da descontinuação.
Depois que a versão 1 for preterida, as consultas nos índices da versão 1 falharão com a mensagem de erro:
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.
Além disso, as populações apresentam os seguintes erros no log de rastreamento:
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.
Conteúdo relacionado
- Exibir ou alterar filtros registrados e separadores de palavras (Pesquisa do SQL Server)
- Configurar e gerenciar filtros de pesquisa
- Configurar e gerenciar separadores de palavras e lematizadores para pesquisa (SQL Server)
- sys.fulltext_indexes
- ALTER DATABASE SCOPED CONFIGURATION
- Filtros e separadores de palavras na Pesquisa SQL Server Full-Text