Visão geral da pesquisa de texto completo

As consultas de texto completo executam pesquisas linguísticas nos dados de texto em índices de texto completo trabalhando em palavras e frases com base em regras de um idioma específico, como inglês ou japonês. As consultas de texto completo podem incluir palavras e frases simples ou várias formas de uma palavra ou frase.

A pesquisa de texto completo é aplicável a uma vasta gama de cenários comerciais, como e-business — para procurar itens em um site; escritórios de advocacia — para procurar histórico de casos em um repositório de dados legais; — ou departamentos de RH — para comparar descrições de vagas de trabalho a currículos armazenados. As tarefas básicas de administração e desenvolvimento da pesquisa de texto completo são equivalentes, independentemente dos cenários comerciais. No entanto, em um dado cenário comercial, as consultas e o índice de texto completo podem ser ajustados para atender a metas comerciais. Por exemplo, em um cenário de e-business, maximizar o desempenho deve ser mais importante do que a classificação de resultados, a precisão da recuperação (quantas correspondências existentes são de fato retornadas por uma consulta de texto completo) ou o suporte a vários idiomas. Em um escritório de advocacia, retornar cada acerto possível (recuperação total de informações) deve ser o aspecto mais importante a ser considerado.

Visão geral sobre como configurar um banco de dados para pesquisa de texto completo

Em qualquer cenário, um administrador de banco de dados executa as seguintes etapas básicas para configurar as colunas de tabela de um banco de dados para pesquisa de texto completo:

  1. Criar um catálogo de texto completo.

  2. Em cada tabela que você deseja pesquisar, crie um índice de texto completo da seguinte maneira:

    1. Identifique cada coluna de texto a ser incluída no índice de texto completo.

    2. Se uma determinada coluna contiver documentos armazenados como dados binários (dados varbinary(max) ou image), especifique uma coluna de tabela (a coluna de tipo) que identifique o tipo de cada documento na coluna que está sendo indexada.

    3. Especifique o idioma que a pesquisa de texto completo deverá usar nos documentos da coluna.

    4. Escolha o mecanismo de controle de alterações que você deseja usar no índice de texto completo para controlar alterações na tabela base e em suas colunas.

A pesquisa de texto completo dá suporte a vários idiomas através do uso dos seguintes componentes linguísticos: separadores de palavras e lematizadores, listas de palavras irrelevantes (stoplists) (também conhecidas como palavras de ruído) e arquivos de dicionário de sinônimos. Os arquivos de dicionário de sinônimos e, em alguns casos, as listas de palavras irrelevantes exigem configuração pelo administrador de banco de dados. Um dado arquivo de dicionário de sinônimos dá suporte a todos os índices de texto completo que usam o idioma correspondente, e uma determinada lista de palavras irrelevantes pode ser associada a tantos índices de texto completo quantos você desejar.

Para obter mais informações, consulte Administrando pesquisa de texto completo.

Visão geral das consultas de texto completo

Depois que as colunas forem adicionadas a um índice de texto completo, os aplicativos e usuários poderão executar consultas de texto completo no texto das colunas. Essas consultas podem procurar qualquer um dos seguintes itens:

  • Uma ou mais palavras ou frases específicas (termo simples)

  • Uma palavra ou uma frase na qual as palavras começam com o texto especificado (termo de prefixo).

  • As formas flexionadas de uma palavra específica (termo de geração)

  • Uma palavra ou frase perto de outra palavra ou frase (termo de proximidade).

  • Os sinônimos de uma palavra específica (dicionário de sinônimos)

  • Palavras ou frases que usam valores ponderados (termo ponderado).

Todas as consultas de texto completo usam um pequeno conjunto de predicados Transact-SQL (CONTAINS e FREETEXT) e funções (CONTAINSTABLE e FREETEXTTABLE). Todavia, as metas de pesquisa de um determinado cenário comercial influenciam a estrutura exata das consultas de texto completo; por exemplo:

  • E-business — procurar um produto em um site:

    SELECT product_id FROM products WHERE CONTAINS(product_description, ”Snap Happy 100EZ” OR FORMSOF(THESAURUS,’Snap Happy’) OR ‘100EZ’) AND product_cost<200 …
    
  • Cenário de recrutamento — procurar candidatos a uma vaga de trabalho que tenham experiência prática com o SQL Server:

    SELECT candidate_name,SSN FROM candidates WHERE CONTAINS(candidate_resume,”SQL Server”) AND candidate_division =DBA
    

Para obter mais informações, consulte Consultando o SQL Server com pesquisa de texto completo.

Comparação de LIKE com a pesquisa de texto completo

Em comparação com a pesquisa de texto completo, o predicado Transact-SQL LIKE funciona apenas com padrões de caractere. Além disso, não é possível usar o predicado LIKE para consultar dados binários formatados. Além disso, uma consulta LIKE feita em uma grande quantidade de dados de texto não estruturados é bem mais lenta do que uma consulta de texto completo equivalente feita nos mesmos dados. Uma consulta LIKE executada em milhões de linhas de dados pode levar muitos minutos, enquanto uma consulta de texto completo pode demorar alguns segundos ou menos para ser executada nos mesmos dados, dependendo do número de linhas retornadas.