Compartilhar via


Gerenciar índices de Full-Text

Exibindo e alterando as propriedades de um índice de Full-Text

Para exibir ou alterar as propriedades de um índice de texto completo no Management Studio

  1. No Pesquisador de Objetos, expanda o servidor.

  2. Expanda bancos de dados e expanda o banco de dados que contém o índice de texto completo.

  3. Expanda Tabelas.

  4. Clique com o botão direito do mouse na tabela na qual o índice de texto completo está definido, selecione Full-Text índice e, no menu de contexto de índiceFull-Text , clique em Propriedades. Isso abre a caixa de diálogo Propriedades do índice de texto completo .

  5. No painel Selecionar uma página , você pode selecionar qualquer uma das seguintes páginas:

    Página Descrição
    Geral Exibe propriedades básicas do índice de texto completo. Elas incluem várias propriedades modificáveis e várias propriedades imutáveis, como nome do banco de dados, nome da tabela e o nome da coluna de chave de texto completo. As propriedades modificáveis são:

    Lista de palavras de parada do índiceFull-Text

    IndexaçãoFull-Text habilitada

    Controle de alterações

    Lista de propriedades de pesquisa



    Para obter mais informações, consulte Full-Text Propriedades do Índice (Página Geral).
    Colunas Exibe as colunas de tabela disponíveis para indexação de texto completo. As colunas ou colunas selecionadas são indexadas em texto completo. Você pode selecionar quantas colunas disponíveis quiser incluir no índice de texto completo. Para obter mais informações, consulte Full-Text Propriedades do Índice (Página de Colunas).
    Agendas Use esta página para criar ou gerenciar agendas para um trabalho do SQL Server Agent que inicia uma população de tabela incremental para as populações de índice de texto completo. Para obter mais informações, consulte Preencher índices de texto completo.

    **Importante** Depois de sair da caixa de diálogo Propriedades do ÍndiceFull-Text , qualquer agenda recém-criada é associada a um trabalho do SQL Server Agent (Iniciar População de Tabela Incremental em database_name.table_name).
  6. Clique em OK. para salvar as alterações e sair da caixa de diálogo Propriedades do índice de texto completo .

Exibindo as propriedades de tabelas e colunas indexadas

Várias funções de Transact-SQL, como OBJECTPROPERTYEX, podem ser usadas para obter o valor de várias propriedades de indexação de texto completo. Essas informações são úteis para administrar e solucionar problemas de pesquisa de texto completo.

A tabela a seguir lista as propriedades de texto completo relacionadas a tabelas e colunas indexadas e suas funções de Transact-SQL correspondentes.

Propriedade Descrição Função
FullTextTypeColumn TYPE COLUMN na tabela que contém as informações de tipo de documento da coluna. COLUMNPROPERTY
IsFulltextIndexed Se uma coluna foi habilitada para indexação de texto completo. COLUMNPROPERTY
IsFulltextKey Se o índice é a chave de texto completo de uma tabela. INDEXPROPERTY
TableFulltextBackgroundUpdateIndexOn Se uma tabela possui indexação de atualização de plano de fundo de texto completo. OBJECTPROPERTYEX
TableFulltextCatalogId ID do catálogo de texto completo no qual residem os dados do índice de texto completo da tabela. OBJECTPROPERTYEX
TableFulltextChangeTrackingOn Se uma tabela tem o controle de alterações de texto completo habilitado. OBJECTPROPERTYEX
TableFulltextDocsProcessed Número de linhas processadas desde o início da indexação de texto completo. OBJECTPROPERTYEX
TableFulltextFailCount Número de linhas Full-Text Pesquisa não indexou. OBJECTPROPERTYEX
TableFulltextItemCount Número de linhas que foram indexadas com êxito em texto completo. OBJECTPROPERTYEX
TableFulltextKeyColumn O ID da coluna de chave exclusiva de texto completo. OBJECTPROPERTYEX
TableFullTextMergeStatus Se uma tabela que tem um índice de texto completo está atualmente em mesclagem. OBJECTPROPERTYEX
TableFulltextPendingChanges Número de entradas pendentes de controle de mudanças a serem processadas. OBJECTPROPERTYEX
TableFulltextPopulateStatus Status da população de uma tabela de texto completo. OBJECTPROPERTYEX
TableHasActiveFulltextIndex Se uma tabela tem um índice de texto completo ativo. OBJECTPROPERTYEX

Obtendo informações sobre a coluna chave Full-Text

Normalmente, o resultado de funções com valor de conjunto de linhas CONTAINSTABLE ou FREETEXTTABLE precisa ser unido à tabela base. Nesses casos, você precisa saber o nome exclusivo da coluna de chave. Você pode perguntar se um determinado índice exclusivo é usado como a chave de texto completo e obter o identificador da coluna de chave de texto completo.

Para saber se um índice exclusivo específico é utilizado como coluna chave de texto integral

  1. Use uma instrução SELECT para chamar a função INDEXPROPERTY . Na chamada de função, use a função OBJECT_ID para converter o nome da tabela (table_name) na ID da tabela, especificar o nome de um índice exclusivo para a tabela e especificar a propriedade de IsFulltextKey índice, da seguinte maneira:

    SELECT INDEXPROPERTY( OBJECT_ID('table_name'), 'index_name',  'IsFulltextKey' );  
    

    Esta instrução retorna 1 se o índice for usado para impor a unicidade da coluna chave de texto completo e 0 se não for.

Exemplo

O exemplo a seguir pergunta se o PK_Document_DocumentID índice é usado para impor a exclusividade da coluna de chave de texto completo, da seguinte maneira:

USE AdventureWorks  
GO  
SELECT INDEXPROPERTY ( OBJECT_ID('Production.Document'), 'PK_Document_DocumentID',  'IsFulltextKey' )  

Este exemplo retorna 1 se o índice PK_Document_DocumentID for utilizado para garantir a unicidade da coluna de chave de texto completo. Caso contrário, ele retornará 0 ou NULL. NULL implica que você está usando um nome de índice inválido, o nome do índice não corresponde à tabela, a tabela não existe ou assim por diante.

Para localizar o identificador da coluna de chave de texto completo

  1. Cada tabela habilitada para texto completo tem uma coluna que é usada para garantir que as linhas da tabela sejam exclusivas (a coluna de chave única). A TableFulltextKeyColumn propriedade, obtida da função OBJECTPROPERTYEX, contém a ID da coluna da chave exclusiva.

    Para obter esse identificador, você pode usar uma instrução SELECT para chamar a função OBJECTPROPERTYEX. Use a função OBJECT_ID para converter o nome da tabela (table_name) na ID da tabela e especificar a TableFulltextKeyColumn propriedade, da seguinte maneira:

    SELECT OBJECTPROPERTYEX(OBJECT_ID( 'table_name'), 'TableFulltextKeyColumn' ) AS 'Column Identifier';  
    

Exemplos

O exemplo a seguir retorna o identificador da coluna de chave de texto completo ou NULL. NULL implica que você está usando um nome de índice inválido, o nome do índice não corresponde à tabela, a tabela não existe ou assim por diante.

USE AdventureWorks;  
GO  
SELECT OBJECTPROPERTYEX(OBJECT_ID('Production.Document'), 'TableFulltextKeyColumn');  
GO  

O exemplo a seguir mostra como usar o identificador da coluna de chave exclusiva para obter o nome da coluna.

USE AdventureWorks;  
GO  
DECLARE @key_column sysname  
SET @key_column = Col_Name(Object_Id('Production.Document'),  
ObjectProperty(Object_id('Production.Document'),  
'TableFulltextKeyColumn')   
)  
SELECT @key_column AS 'Unique Key Column';  
GO  

Este exemplo retorna uma coluna de conjunto de resultados chamada Unique Key Column, que exibe uma única linha que contém o nome da coluna de chave exclusiva da tabela Document, DocumentID. Observe que, se essa consulta contiver um nome de índice inválido, o nome do índice não correspondeu à tabela, a tabela não existia e, portanto, retornaria NULL.

Desativando ou reativando uma tabela para indexação de Full-Text

No SQL Server, todos os bancos de dados criados pelo usuário são habilitados para texto completo por padrão. Além disso, uma tabela individual é habilitada automaticamente para indexação de texto completo assim que um índice de texto completo é criado nela e uma coluna é adicionada ao índice. Uma tabela é desabilitada automaticamente para indexação de texto completo quando a última coluna é removida de seu índice de texto completo.

Em uma tabela com um índice de texto completo, você pode desabilitar ou reabilitar manualmente uma tabela para indexação de texto completo usando o SQL Server Management Studio.

Para habilitar uma tabela para indexação de texto completo

  1. Expanda o grupo de servidores, expanda bancos de dados e expanda o banco de dados que contém a tabela que você deseja habilitar para indexação de texto completo.

  2. Expanda Tabelas e clique com o botão direito do mouse na tabela que você deseja desabilitar ou habilitar novamente para indexação de texto completo.

  3. Selecione Full-Text índice e clique em Desabilitar índice Full-Text ou Habilitar índice Full-Text.

Removendo um índice de Full-Text de uma tabela

Para remover um índice de texto completo de uma tabela

  1. No Pesquisador de Objetos, clique com o botão direito do mouse na tabela que tem o índice de texto completo que você deseja excluir.

  2. Selecione Excluir índice Full-Text.

  3. Quando solicitado, clique em OK para confirmar se deseja excluir o índice de texto completo.