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
Banco de dados SQL no Microsoft Fabric
Retorna informações sobre o conteúdo no nível de documento de um índice de texto completo associado à tabela especificada.
sys.dm_fts_index_keywords_by_document é uma função de gerenciamento dinâmico.
Para visualizar informações de índice completo de nível superior, veja sys.dm_fts_index_keywords.
Para visualizar informações sobre conteúdo em nível de propriedade relacionado a uma propriedade de documento, veja sys.dm_fts_index_keywords_by_property.
Sintaxe
sys.dm_fts_index_keywords_by_document
(
DB_ID('database_name')
, OBJECT_ID('table_name')
)
Argumentos
DB_ID('database_name')
Um chamado para a função DB_ID .
DB_ID é int. Essa função aceita um nome de banco de dados e retorna o ID do banco de donadas, que sys.dm_fts_index_keywords_by_document é usado para encontrar o banco de dados especificado. Se database_name for omitido, a ID de banco de dados atual será retornada.
OBJECT_ID('table_name')
Uma ligação para a função OBJECT_ID .
OBJECT_ID é int. Essa função aceita um nome de tabela e retorna o ID da tabela contendo o índice de texto completo para inspecionar.
Tabela retornada
| Nome da Coluna | Tipo de dados | Anulável | Descrição |
|---|---|---|---|
keyword
1 |
varbinary(128) | No | A representação hexadecimal da palavra-chave armazenada no índice de texto completo. |
display_term
1 |
nvarchar(4000) | No | O formato legível da palavra-chave. Esse formato é derivado do formato interno, que é armazenado no índice de texto completo. |
column_id |
int | No | A ID da coluna a partir da qual a palavra-chave atual foi indexada com texto completo. |
document_id |
bigint | Sim | A ID do documento ou linha a partir da qual o termo atual foi indexado com texto completo. Essa ID corresponde ao valor da chave de texto completo desse documento ou linha. |
occurrence_count |
int | Sim | Número de ocorrências da palavra-chave atual no documento ou linha indicada por document_id. Quando 'search_property_name' é especificado, occurrence_count exibe apenas o número de ocorrências da palavra-chave atual na propriedade de busca especificada dentro do documento ou linha. |
10xFF representa o caractere especial que indica o fim de um arquivo ou conjunto de dados.
Observações
As informações retornadas por sys.dm_fts_index_keywords_by_document são úteis para descobrir o seguinte, entre outras coisas:
- O número total de palavras-chave que um índice de texto completo contém.
- Se uma palavra-chave faz parte de um determinado documento ou linha.
- Quantas vezes uma palavra-chave aparece em todo o índice de texto completo. Ou seja,
SUM(occurrence_count) WHERE keyword = <keyword_value> - Quantas vezes uma palavra-chave aparece em um determinado documento ou linha.
- Quantas palavras-chave um determinado documento ou linha contém.
Além disso, você também pode usar as informações fornecidas por sys.dm_fts_index_keywords_by_document para recuperar todas as palavras-chave pertencentes a um determinado documento ou linha.
Quando a coluna da chave do texto completo é um tipo de dado inteiro, conforme recomendado, ela document_id mapeia diretamente para o valor da chave do texto completo na tabela base.
Em contraste, quando a coluna de chave de texto completo usa um tipo de dado não inteiro, document_id não representa a chave de texto completo na tabela base. Nesse caso, para identificar a linha na tabela base que é retornada por dm_fts_index_keywords_by_document, você precisa unir essa visualização aos resultados retornados por sp_fulltext_keymappings.
Antes de uni-los, é necessário armazenar a saída do procedimento armazenado em uma tabela temporária. Então você pode juntar a document_id coluna de dm_fts_index_keywords_by_document com a DocId coluna que é retornada por esse procedimento armazenado. Uma coluna de carimbo de tempo não pode receber valores no momento da inserção, porque eles são gerados automaticamente pelo SQL Server. Portanto, a coluna timestamp deve ser convertida em colunas varbinary(8 ). O exemplo a seguir mostra estas etapas. Neste exemplo, @table_id é o ID da sua tabela, database_name é o nome do seu banco de dados, e table_name é o nome da sua tabela.
USE database_name;
GO
CREATE TABLE #MyTempTable
(
docid INT PRIMARY KEY,
[key] INT NOT NULL
);
DECLARE @db_id AS INT = DB_ID(N'database_name');
DECLARE @table_id AS INT = OBJECT_ID(N'table_name');
INSERT INTO #MyTempTable
EXECUTE sp_fulltext_keymappings @table_id;
SELECT *
FROM sys.dm_fts_index_keywords_by_document(@db_id, @table_id) AS kbd
INNER JOIN #MyTempTable AS tt
ON tt.[docid] = kbd.document_id;
GO
Permissions
Requer SELECT permissão nas colunas cobertas pelo índice do texto completo e CREATE FULLTEXT CATALOG permissões.
Examples
A. Exibir o conteúdo indexado em texto completo no nível do documento
O exemplo a seguir exibe o conteúdo do índice de texto completo no nível do documento na tabela HumanResources.JobCandidate do banco de dados de exemplo AdventureWorks2025.
Note
Você pode criar esse índice executando o exemplo fornecido para a HumanResources.JobCandidate tabela em CREATE FULLTEXT INDEX.
SELECT *
FROM sys.dm_fts_index_keywords_by_document(DB_ID('AdventureWorks2025'), OBJECT_ID('HumanResources.JobCandidate'));
GO