sys.dm_fts_index_keywords_by_document (Transact-SQL)

Aplica-se a:SQL ServerInstância Gerenciada de SQL do AzureAnalytics Platform System (PDW)

Retorna informações sobre o conteúdo em nível de documento de um índice de texto completo associado à tabela especificada.

sys.dm_fts_index_keywords_by_document é uma função de gestão dinâmica.

Para exibir informações de índice de texto completo de nível superior

Para exibir informações sobre conteúdo de nível de propriedade relacionado a uma propriedade de documento

Sintaxe

  
sys.dm_fts_index_keywords_by_document  
(   
    DB_ID('database_name'),     OBJECT_ID('table_name')   
)  

Argumentos

db_id('database_name')
Uma chamada para a função DB_ID(). Essa função aceita um nome de banco de dados e retorna a ID do banco de dados, que sys.dm_fts_index_keywords_by_document usa para localizar o banco de dados especificado. Se database_name for omitida, a ID do banco de dados atual será retornada.

object_id('table_name')
Uma chamada para a função OBJECT_ID(). Essa função aceita um nome de tabela e retorna a ID da tabela que contém o índice de texto completo a ser inspecionado.

Tabela retornada

Coluna Tipo de dados Descrição
palavra-chave nvarchar(4000) A representação hexadecimal da palavra-chave armazenada dentro do índice de texto completo.

Nota: OxFF representa o caractere especial que indica o final de um arquivo ou conjunto de dados.
display_term nvarchar(4000) O formato legível por humanos da palavra-chave. Esse formato é derivado do formato interno armazenado no índice de texto completo.

Nota: OxFF representa o caractere especial que indica o final de um arquivo ou conjunto de dados.
column_id int ID da coluna a partir da qual a palavra-chave atual foi indexada em texto completo.
document_id int ID do documento ou linha a partir da qual o termo atual foi indexado em texto completo. Essa ID corresponde ao valor da chave de texto completo desse documento ou linha.
occurrence_count int 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 pesquisa especificada dentro do documento ou linha.

Comentários

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; Isto é:

    (SUM(occurrence_count) WHERE palavra-chave=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 pelo sys.dm_fts_index_keywords_by_document para recuperar todas as palavras-chave pertencentes a um determinado documento ou linha.

Quando a coluna de chave de texto completo é um tipo de dados inteiro, conforme recomendado, o document_id mapeia diretamente para o valor de chave de texto completo na tabela base.

Por outro lado, quando a coluna de chave de texto completo usa um tipo de dados 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 retornada por dm_fts_index_keywords_by_document, você precisa unir essa exibição com os resultados retornados por sp_fulltext_keymappings. Antes de ingressar neles, você deve armazenar a saída do procedimento armazenado em uma tabela temporária. Em seguida, você pode unir a coluna document_id de dm_fts_index_keywords_by_document com a coluna DocId que é retornada por este procedimento armazenado. Observe que uma coluna de carimbo de data/hora 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 essas etapas. Neste exemplo, table_id é a ID da tabela, database_name é o nome do banco de dados e table_name é o nome da tabela.

USE database_name;  
GO  
CREATE TABLE #MyTempTable   
   (  
      docid INT PRIMARY KEY ,  
      [key] INT NOT NULL  
   );  
DECLARE @db_id int = db_id(N'database_name');  
DECLARE @table_id int = OBJECT_ID(N'table_name');  
INSERT INTO #MyTempTable EXEC sp_fulltext_keymappings @table_id;  
SELECT * FROM sys.dm_fts_index_keywords_by_document   
   ( @db_id, @table_id ) kbd  
   INNER JOIN #MyTempTable tt ON tt.[docid]=kbd.document_id;  
GO  
  

Permissões

Requer a permissão SELECT nas colunas cobertas pelas permissões de índice de texto completo e CREATE FULLTEXT CATALOG.

Exemplos

R. Exibindo conteúdo de índice de 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 HumanResources.JobCandidate tabela do banco de dados de AdventureWorks2022 exemplo.

Observação

Você pode criar esse índice executando o exemplo fornecido para a HumanResources.JobCandidate tabela em CREATE FULLTEXT INDEX (Transact-SQL).

SELECT * FROM sys.dm_fts_index_keywords_by_document(db_id('AdventureWorks2022'),   
object_id('HumanResources.JobCandidate'));  
GO  

Veja também

Pesquisa de texto completo e pesquisa semântica: exibições e funções de gerenciamento dinâmico (Transact-SQL)
Pesquisa de texto completo
sys.dm_fts_index_keywords (Transact-SQL)
sys.dm_fts_index_keywords_by_property (Transact-SQL)
sp_fulltext_keymappings (Transact-SQL)
Melhorar o desempenho de índices de texto completo