Partilhar via


Alterações recentes na pesquisa de texto completo

Este tópico descreve as alterações recentes feitas na pesquisa de texto completo. Essas alterações podem danificar aplicativos, scripts ou funcionalidades baseados em versões anteriores do SQL Server. Talvez você encontre esses problemas ao atualizar. Para obter mais informações, consulte Usar o Supervisor de Atualização para preparar para atualizações.

Alterações mais recentes na pesquisa de texto completo no SQL Server 2012

Agrupamento alterado para o nome Coluna em sys.fulltext_languages

O agrupamento da coluna nome do idioma na exibição do catálogo sys.fulltext_languages (Transact-SQL) foi alterado do agrupamento fixo do banco de dados de Recursos para o agrupamento padrão selecionado para a instância do SQL Server. Esta alteração possibilitará comparar os valores na coluna nome quando você unir a exibição sys.syslanguages (Transact-SQL) com sys.fulltext_languages. Por exemplo, você pode consultar todos os bancos de dados onde o idioma de texto completo padrão é diferente do idioma de banco de dados padrão.

Analisando as alterações feitas na pesquisa de texto completo no SQL Server 2008

As últimas alterações a seguir aplicam-se à Pesquisar de texto completo entre o SQL Server 2005 e o SQL Server 2008 e versões posteriores.

Recurso

Cenário

SQL Server 2005

SQL Server 2008 e versões posteriores

CONTAINSTABLE com tipos definidos pelo usuário (UDTs)

A chave de texto completo é um tipo definido pelo usuário do SQL Server, por exemplo, MyType = char(1).

A chave retornada é do tipo atribuído ao tipo definido pelo usuário.

No exemplo, seria char(1).

A chave retornada é do tipo definido pelo usuário. No exemplo, seria MyType.

Parâmetro top_n_by_rank (das instruções Transact-SQL CONTAINSTABLE e FREETEXTTABLE)

Consultas top_n_by_rank que usam 0 como o parâmetro.

Falha com uma mensagem de erro, indicando que você deve usar um valor maior que zero.

Tem êxito, não retornando nenhuma linha.

CONTAINSTABLE e ItemCount

Excluir linhas da tabela base antes do envio por push de alterações para MSSearch.

CONTAINSTABLE retorna registro fantasma. ItemCount não é alterado.

CONTAINSTABLE não retorna nenhum registro fantasma.

ItemCount

A tabela contém colunas de tipo ou documentos nulos.

Além de documentos indexados, os documentos que são nulos ou que têm tipos nulos são contados no valor ItemCount.

Somente documentos indexados são contados no valor ItemCount.

Catálogo ItemCount

Coluna blob com uma extensão NULL.

É contada em ItemCount do catálogo

Não é contada em ItemCount do catálogo.

UniqueKeyCount

Consultar uma contagem de chave exclusiva a partir de um catálogo, por exemplo, duas tabelas (table1 e table2) em que cada uma tem três palavras: word1, word2 e word3.

UniqueKeyCount = 9. A tabela a seguir resume como esse valor é obtido:

table1 = 3

EOF para índice de texto completo de table1 = 1

table2 = 3

EOF para índice de texto completo de table2 = 1

catálogo de texto completo = 1

Para cada tabela, UniqueKeyCount é o número de palavras-chave distintas + 1 (0xFF). Isso NÃO trata as mesmas palavras em > 1 doc como uma nova chave exclusiva.

Para um catálogo, UniqueKeyCount é a soma de UniqueKeyCount de cada uma das tabelas no catálogo. Palavras idênticas de tabelas diferentes são tratadas como chaves exclusivas. Nesse caso, a contagem de chaves exclusivas é 8.

Opção no nível de servidor classificação pré-computada

Otimização do desempenho de consultas FREETEXTTABLE.

Quando a opção é definida como 1, as consultas FREETEXTTABLE especificadas com top_n_by_rank usam dados de classificação pré-computada armazenados nos catálogos de texto completo.

Não tem suporte.

sp_fulltext_pendingchanges ao atualizar coluna de chave

Atualizar a coluna de chave de texto completo em uma linha de uma tabela de 2 linhas e executar sp_fulltext_pendingchanges.

As duas linhas aparecem.

Somente uma linha aparece.

Funções embutidas

Funções embutidas com um operador de texto completo

Retorna uma mensagem de erro.

Retorna as linhas relevantes.

sp_fulltext_database

Habilitar ou desabilitar pesquisa de texto completo usando sp_fulltext_database.

Nenhum resultado é retornado para consultas de texto completo. Se o texto completo estiver desabilitado para o banco de dados, não serão permitidas operações de texto completo.

Retorna resultados para consultas de texto completo e operações de texto completo permitidas, mesmo se o texto completo estiver desabilitado para o banco de dados.

Palavras irrelevantes (stop words) específicas da localidade

Consultas emvariantes específicas da localidade de um idioma pai, como francês belga e francês canadense.

As consultas emvariantes específicas da localidade são processadas pelos componentes (separadores de palavras, lematizadores e palavras irrelevantes) de seu idioma pai. Por exemplo, os componentes de francês (França) são usados para analisar francês (Bélgica).

Você deve adicionar palavras irrelevantes explicitamente para cada identificador de localidade (LCID). Por exemplo, você precisaria especificar um LCID para Bélgica, Canadá e França.

Processo de lematização do dicionário de sinônimos

Usando o dicionário de sinônimos e formas flexivas (lematização).

Uma palavra do dicionário de sinônimos é lematizada automaticamente depois de sua expansão.

Se você deseja a forma lematizada na expansão, precisará adicionar explicitamente a forma lematizada.

Caminho de catálogo de texto completo e grupo de arquivos

Trabalhando com catálogos de texto completo.

Cada catálogo de texto completo tem um caminho físico e pertence a um grupo de arquivos. Ele é tratado como um arquivo de banco de dados.

Um catálogo de texto completo é um objeto virtual e não pertence a nenhum grupo de arquivos. Um catálogo de texto completo é um conceito lógico que faz referência a um grupo de índices de texto completo.

ObservaçãoObservação

As instruções DDL Transact-SQL do SQL Server 2005 que especificam catálogos de texto completo funcionam corretamente.

sys.fulltext_catalogs

Usando path, data_space_id e file_id desta exibição de catálogo.

Essas colunas retornam um valor específico.

Essas colunas retornam NULL porque o catálogo de texto completo não está mais localizado no sistema de arquivos.

sys.sysfulltextcatalogs

Usando a coluna path desta tabela de sistema preterida.

Retorna o caminho do sistema de arquivos do catálogo de texto completo.

Retorna NULL porque o catálogo de texto completo não mais está localizado no sistema de arquivos.

sp_help_fulltext_catalogs

sp_help_fulltext_catalogs_cursor

Usando a coluna PATH desses procedimentos armazenados preteridos.

Retorna o caminho do sistema de arquivos do catálogo de texto completo.

Retorna NULL porque o catálogo de texto completo não está mais localizado no sistema de arquivos.

sp_help_fulltext_catalog_components

Usando sp_help_fulltext_catalog_components deste procedimento armazenado.

Retorna uma lista de todos os componentes (filtros, separadores de palavras e manipuladores de protocolo) usados em todos os catálogos de texto completo do banco de dados atual.

Retorna linhas vazias.

DATABASEPROPERTYEX

Usando a propriedade IsFullTextEnabled.

A configuração de IsFullTextEnabled indica se a pesquisa de texto completo está habilitada ou não em um determinado banco de dados.

O valor dessa coluna não tem nenhum efeito. Os bancos de dados de usuário sempre estão habilitados para pesquisa de texto completo.

Consulte também

Conceitos

Alterações de comportamento em pesquisa de texto completo

Pesquisa de texto completo (SQL Server)