Artigo da SQL Magazine 43 - SQL Server 2005 Full-Text Search - Parte 1

Artigo da SQL Magazine - edição 43.

Clique aqui para ler esse artigo em PDF.

Clique aqui para ler todos os artigos desta edição

SQL Server 2005 Full-Text Search (Parte 1)

Aprenda passo-a-passo como instalar, configurar e usar o Full-Text Search no SQL Server 2005

 

Uma necessidade cada vez mais comum de muitas aplicações, principalmente para aplicações web, é pesquisar por frases ou palavras não apenas nas colunas char ou varchar das tabelas de um banco de dados, mas também em arquivos como .txt, .pdf, .doc, .xls, .html, entre outros.

O suporte à linguagem Transact-SQL fornecido pelo SQL Server permite que você realize pesquisas em dados armazenados em colunas do tipo char, nchar, varchar, nvarchar, text e ntext, mas os grandes problemas são: O que fazer quando você precisa pesquisar frases ou palavras em documentos? O que fazer se você precisa pesquisar não apenas por uma palavra ou frase exata, como faz o comando LIKE, mas também por suas variantes verbais (exemplo: correr, correndo, correu) ou ainda estejam estas no singular ou no plural?

Presente no SQL Server desde sua versão 7.0, o Full-Text Search é a solução para estes problemas.  Ele fornece um suporte eficiente não apenas para busca de palavras ou frases em colunas baseadas em caracteres, mas também para a busca de palavras ou frases em documentos como .doc, .xls, .ppt, .pdf e vários outros.

Para que possamos falar do Full-Text de uma forma mais abrangente, estarei dividindo o artigo em duas partes. Nesta primeira parte, apresentarei o passo-a-passo de como instalar o Full-Text no SQL Server 2005, como configurá-lo em um banco de dados, criar os catálogos e índices full-text e ainda como realizar pesquisas utilizando as funções CONTAINS, CONTAINSTABLE, FREETEXT e FREETEXTTABLE.

Na segunda parte deste artigo partiremos para tópicos mais avançados e veremos como configurar o Full-Text para trabalhar com o idioma Português (uma necessidade comum já que nossos dados estão armazenados no idioma português), como configurá-lo para realizar pesquisas em documentos .pdf – incluindo a instalação do filtro para pdf, e o passo-a-passo de como pesquisar por palavras ou frases em documentos – uma das principais funcionalidades do Full-Text Search.

A arquitetura do Full-Text Search

No SQL Server 2005, o Full-Text Search é controlado pelo Microsoft Full-Text Engine for SQL Server (MSFTESQL), que é responsável por fornecer os serviços de suporte à indexação e consulta. Como podemos ver na Figura 1, a arquitetura do Full-Text Search no SQL Server é composta por três processos que juntamente com seus respectivos componentes fazem do Full-Text Search uma poderosa ferramenta de busca:

·        Filter Daemon Process (MSFTEFD.EXE): controlado pelo serviço Microsoft Full-Text Engine for SQL Server (MSFTESQL), o Filter Daemon possui componentes que são responsáveis por acessar e filtrar os dados das tabelas que estão configuradas para full-text.

·        SQL Server Process (SQLSERVER.EXE): este é o próprio processo do SQL Server. Ele é responsável pelo armazenamento das tabelas com os dados a serem indexados, processar as consultas, agendar e controlar a população dos índices full-text e monitorar os catálogos do full-text (Nota 1).

·        Search Process (MSFTESQL.EXE): referenciado também como Full-Text Engine, este é o principal processo na arquitetura do Full-Text Search no SQL Server 2005. Instalado como um serviço para cada instância do SQL Server e devendo possuir a mesma conta de serviço que o SQL Server, o full-text engine é o responsável por realizar a população e o gerenciamento dos catálogos do full-text (Nota 1) e por facilitar as pesquisas full-text nas tabelas dos bancos de dados. O MSFTESQL também é responsável por processar as consultas full-text recebidas do SQL Server e determinar quais chaves do índice full-text satisfazem os critérios de seleção da pesquisa. Estas chaves são então retornadas para o SQL Server que as utiliza para construir o resultado da consulta.

 

Nota 1. Full-Text Index e Full-Text Catalogs

O índice full-text (full-text index) é um tipo especial de índice que armazena informações sobre as palavras e suas respectivas localizações dentro de uma coluna. Estas informações são posteriormente utilizadas pelo full-text search para otimizar as consultas full-text que buscam por uma palavra específica ou uma combinação delas. Estes índices são armazenados em estruturas conhecidas como catálogos (full-text catalogs) e juntos são mantidos como uma coleção de pastas e arquivos no disco local do seu servidor.

Os catálogos podem armazenar índices full-text para uma ou mais tabelas desde que estas tabelas pertençam a um único banco de dados, ou seja, um catálogo não pode pertencer a múltiplos bancos de dados.

 


Figura 1. Arquitetura do Full-Text Search no SQL Server.

Instalando o Full-Text Search

Suportado em todas as edições do SQL Server 2005, incluindo o SQL Express with Advanced Services, o Full-Text Search é instalado como parte do componente SQL Server Database Services e requer um espaço mínimo de 22MB na partição de sistema (C:\). O Full-Text Search também requer uma partição NTFS para o armazenamento dos catálogos e dos índices full-text, que por default são armazenados no caminho \MSSQL.1\MSSQL\FTDATA. A Figura 2 mostra a janela de seleção de componentes durante o processo de instalação do SQL Server 2005." [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados