Utilizando Full-Text Search - SQL Magazine 82

Neste artigo, abordaremos a funcionalidade disponível no SQL Server 2008 para pesquisas textuais conhecida como Full-Text Search, sua instalação e implementação. Além disso, veremos como desenvolver pesquisas textuais utilizando os predicados CONTAINS, CONTAINSTABLE, FREETEXT e FREETEXTTABLE, e utilizar a funcionalidade FILESTREAM para melhorar as pesquisas realizadas e o armazenamento de dados binários em tabelas.

Atenção: esse artigo tem um vídeo complementar. Clique e assista!

Do que se trata este artigo:

Neste artigo, abordaremos a funcionalidade disponível no SQL Server 2008 para pesquisas textuais conhecida como Full-Text Search, sua instalação e implementação. Além disso, veremos como desenvolver pesquisas textuais utilizando os predicados CONTAINS, CONTAINSTABLE, FREETEXT e FREETEXTTABLE, e utilizar a funcionalidade FILESTREAM para melhorar as pesquisas realizadas e o armazenamento de dados binários em tabelas.

Para que serve:

Este artigo auxilia profissionais no desenvolvimento de pesquisas textuais mais inteligentes e eficientes através do Full-Text Search, não apenas demonstrando sua configuração e utilização como também a sua arquitetura e as melhoras práticas na utilização do Full-Text Search.

Em que situação o tema é útil:

No desenvolvimento de sistemas que acessam diversos tipos de informações textuais, incluindo documentos binários, e necessitam extrair informação de forma rápida, eficiente e com maior relevância dentro dos termos pesquisados.

A pesquisa baseada em palavras e frases é uma das principais características das ferramentas de buscas na web, como o Google, e dos sistemas de gerenciamento de documentos digitais. Para executar estas pesquisas de forma eficiente, muitos desenvolvedores criam aplicações extremamente complexas e que não possuem a inteligência necessária na procura de termos e frases nas colunas que armazenam textos e documentos digitais nas tabelas dos bancos de dados.

O que a grande maioria desses profissionais não conhece é que o SQL Server possui uma avançada ferramenta para pesquisas textuais, o Full-Text Search (FTS).

O FTS está presente no SQL Server desde a sua versão 7 e através da sua utilização é possível realizar pesquisas textuais tanto em colunas que armazenam caracteres como em colunas que armazenam documentos (por exemplo, documentos do Office e PDFs), em sua forma nativa.

Com opções como pesquisas por palavras e frases, reconhecimento de diferentes idiomas, derivação de palavras (por exemplo: jogar, jogou e jogando), possibilidade de desenvolver um dicionário de sinônimos, criação de resultados ranqueados e eliminação de palavras irrelevantes para a pesquisa, o FTS torna-se uma poderosa ferramenta para pesquisas textuais. Como principais fatores para a utilização das pesquisas textuais, temos:

O FTS possui grandes vantagens em relação a outras alternativas para pesquisas textuais, como por exemplo, o comando LIKE. As principais tarefas que podem ser realizadas com o FTS são:

Neste artigo será descrita a arquitetura do FTS, sua instalação e configuração, os principais comandos T-SQL utilizados na realização de pesquisas textuais, a utilização do FTS em conjunto com o FILESTREAM e também algumas técnicas para otimizar as pesquisas através do FTS.

Arquitetura do FTS

A arquitetura do FTS possui vários componentes trabalhando em conjunto com o processador de consulta do SQL Server para realizar pesquisas textuais de forma eficiente. A Figura 1 ilustra os principais componentes da arquitetura do FTS. Vejamos alguns deles:

Figura 1. Arquitetura do FTS.

Para o melhor entendimento do processo de criação, utilização e manutenção da estrutura de índices full-text, é preciso também conhecer o significado de alguns conceitos importantes. São eles:

Artigos relacionados