ustify>

Capa SQl 33

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.

 

 

Figure 2. Janela de seleção de componentes durante instalação do SQL Server 2005.

 

Se preferir, você também pode clicar sobre o botão Advanced da janela Components to Install e na janela seguinte, com o título Feature Selection, escolher o item Database Services e selecionar Full-Text Search, como apresentado na Figura 3.

 


Figura 3. Janela Feature Selection durante instalação SQL Server 2005.

 

Para o SQL Server Express with Advanced Services, o processo de instalação do Full-Text Search é um pouco diferente. Durante a instalação, na janela Registration Information, desative a opção Hide advanced configuration options e na janela Feature Selection selecione Full-Text Search.

Mesmo que você já esteja com o SQL Server 2005 instalado, o Full-Text Search ainda pode ser instalado executando novamente o setup do SQL Server através do painel de controle do Windows. Para isso você deve seguir os passos:

1.        No painel de controle, selecione Microsoft SQL Server 2005 e clique sobre o botão Change.

...

Quer ler esse conteúdo completo? Tenha acesso completo