Partilhar via


sp_fulltext_keymappings (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

Retorna mapeamentos entre identificadores de documento (DocIds) e valores de chave de texto completo. A coluna DocId contém valores para um bigint inteiro que mapeia para um determinado valor de chave de texto completo em uma tabela indexada de texto completo. Os valores DocId que satisfazem uma condição de pesquisa são passados do Mecanismo de Full-Text para o Mecanismo de Banco de Dados, onde são mapeados para valores de chave de texto completo da tabela base que está sendo consultada. A coluna de chave de texto completo é um índice exclusivo que é necessário em uma coluna da tabela.

Transact-SQL convenções de sintaxe

Sintaxe

sp_fulltext_keymappings { table_id | table_id , docId | table_id , NULL , key }
[ ; ]

Argumentos

table_id

A ID do objeto da tabela indexada de texto completo. Se você especificar um table_idinválido, um erro será retornado. Para obter informações sobre como obter a ID de objeto de uma tabela, consulte OBJECT_ID.

docId

Um identificador de documento interno (DocId) que corresponde ao valor da chave. Um valor de docId inválido não retorna nenhum resultado.

chave

O valor da chave de texto completo da tabela especificada. Um valor de de chave de inválido não retorna nenhum resultado. Para obter informações sobre valores de chave de texto completo, consulte Criar e gerenciar índices de texto completo.

Valores de código de retorno

Nenhuma.

Conjunto de resultados

Nome da coluna Tipo de dados Descrição
DocId bigint Uma coluna de identificador de documento interno (DocId) que corresponde ao valor da chave.
Key 1 O valor da chave de texto completo da tabela especificada.

Se não existirem chaves de texto completo na tabela de mapeamento, um conjunto de linhas vazio será retornado.

1 O tipo de dados para Chave é o mesmo que o tipo de dados da coluna de chave de texto completo na tabela base.

Permissões

Esta função é pública e não requer nenhuma permissão especial.

Comentários

A tabela a seguir descreve o efeito do uso de um, dois ou três parâmetros.

Esta lista de parâmetros... Tem esse resultado...
table_id Quando invocado apenas com o parâmetro table_id, sp_fulltext_keymappings retorna todos os valores de chave de texto completo (Key) da tabela base especificada, juntamente com o DocId que corresponde a cada chave. Isso inclui chaves que estão pendentes de exclusão.

Esta função é útil para solucionar vários problemas. É útil para ver o conteúdo do índice de texto completo quando a chave de texto completo selecionada não é de um tipo de dados inteiro. Isto implica juntar os resultados de sp_fulltext_keymappings com os resultados de sys.dm_fts_index_keywords_by_document. Para obter mais informações, consulte sys.dm_fts_index_keywords_by_document.

Em geral, no entanto, recomendamos que, se possível, você execute sp_fulltext_keymappings com parâmetros que especificam uma chave de texto completo específica ou DocId. Isso é muito mais eficiente do que retornar um mapa de chaves inteiro, especialmente para uma tabela grande para a qual o custo de desempenho de retornar o mapa de chaves inteiro pode ser substancial.
table_id, docId Se apenas os docId table_id e forem especificados, docId deverá ser não-NULL e especificar um DocId válido na tabela especificada. Esta função é útil para isolar a chave de texto completo personalizada da tabela base que corresponde ao DocId de um determinado índice de texto completo.
table_id, NULL, chave Se três parâmetros estiverem presentes, o segundo parâmetro deverá ser NULLe chave deverá ser não-NULL e especificar um valor de chave de texto completo válido da tabela especificada. Esta função é útil para isolar o DocId que corresponde a uma determinada chave de texto completo da tabela base.

Um erro é retornado em qualquer uma das seguintes condições:

  • Você especifica um table_id inválido
  • A tabela não está indexada em texto completo
  • NULL é encontrado para um parâmetro que pode ser não-nulo.

Exemplos

Observação

Os exemplos nesta seção usam a tabela Production.ProductReview do banco de dados de exemplo AdventureWorks2022. Você pode criar esse índice executando o exemplo fornecido para a tabela ProductReview em CREATE FULLTEXT INDEX.

Um. Obter todos os valores Key e DocId

O exemplo a seguir usa uma instrução DECLARE @local_variable para criar uma variável local, @table_id e atribuir a ID da tabela ProductReview como seu valor. O exemplo executa sp_fulltext_keymappings especificando @table_id para o parâmetro table_id.

Observação

Usar sp_fulltext_keymappings apenas com o parâmetro table_id é adequado para tabelas pequenas.

USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO

Este exemplo retorna todos os DocIds e chaves de texto completo da tabela, da seguinte maneira:

TABELA docId chave
1 1 1
2 2 2
3 3 3
4 4 4

B. Obter o valor DocId para um valor de chave específico

O exemplo a seguir usa uma instrução DECLARE para criar uma variável local, @table_id, e para atribuir a ID da tabela ProductReview como seu valor. O exemplo executa sp_fulltext_keymappings especificando @table_id para o parâmetro table_id, NULL para o parâmetro docId e 4 para o parâmetro key.

Observação

Usar sp_fulltext_keymappings apenas com o parâmetro table_id é adequado para tabelas pequenas.

USE AdventureWorks2022;
GO

DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');

EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO

Este exemplo retorna os seguintes resultados.

TABELA docId chave
4 4 4