Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Pesquisas indexadas - .net magazine 73
Este artigo tem o intuito de desenvolver um sistema de buscas local estilo “Google”, usando um engine conhecido como Lucene.net. Vamos mostrar como indexar algumas informações e posteriormente disponibilizá-las para serem consultadas através de uma interface Web.
.net Magazine 73
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da .net Magazine 73
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da .net Magazine 73
Pesquisas indexadas
Crie um site de buscas local em .NET, estilo “Google”
Resumo do DevMan
O objetivo deste artigo é apresentar o Lucene.net, uma ferramenta que realiza a indexação de arquivos, bem similar ao que o Google Desktop Engine e o Windows Desktop Search fazem. Serão mostrados os conceitos, as principais classes / APIs do Lucene.net e posteriormente vamos colocar em prática seu uso desenvolvendo o exemplo prático. Além de realizar a indexação é possível realizar buscas onde os resultados podem ser ordenados, negritar o texto achado, buscar por palavras aproximadas, fazer pesquisa com a utilização de condicionais lógicas, indexar informações em arquivos que podem ficar alocados tanto no disco quanto na memória, fazer a busca em mais de um índice e muito mais.
O projeto Lucene
O Lucene começou a ser desenvolvido no final de 1997 por Doug Cutting, com a linguagem de programação Java. Em 2000 o projeto Lucene foi lançado no SourceForge, dessa forma os usuários foram apresentados a essa ferramenta de busca, que após um ano da sua divulgação conseguiu vários utilizadores, tornando-se membro do Apache Jakarta (projeto que reúne soluções e frameworks em Java de alta qualidade e colaboração). Dessa forma o projeto ganhou força na sua divulgação e consequentemente por ser Open Source, a colaboração na implementação e melhorias fluíram ao longo dos anos, aumentando a quantidade de colaboradores. Para atender a essa gama de desenvolvedores foi necessário fazer a implementação para outras linguagens de programação, como o C#, Perl, Python e C++.
A Figura 1 mostra em linhas gerais o processo de indexação de texto usado pelo Lucene.net. O motivo de mostrar esse processo é facilitar o entendimento de como é feita a indexação, a procura e ao final, a exibição do resultado para o usuário. Perceba que o texto pode ser extraído de um arquivo HTML, Word, PDF, uma base de dados dentre outras fontes. O mecanismo de extração desse texto fica a cargo do desenvolvedor, pois quando o texto é obtido, o mesmo é repassado ao Lucene.Net para sofrer uma análise.
Figura 1. Visão geral da indexação de texto
Analyzer
Antes de criar o índice, que é o local onde informações analisadas estão alojadas, esses dados passam por um processo de análise realizado pelo Analyzer do framework. Esse Analyzer, que nada mais é do que uma classe, pode tratar a informação passada a ele de diversas maneiras, aplicando tipos de análise. Vamos compreender de forma rápida cada uma delas:
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Crie um site de buscas local em .NET, estilo “Google”
Resumo do DevMan
O objetivo deste artigo é apresentar o Lucene.net, uma ferramenta que realiza a indexação de arquivos, bem similar ao que o Google Desktop Engine e o Windows Desktop Search fazem. Serão mostrados os conceitos, as principais classes / APIs do Lucene.net e posteriormente vamos colocar em prática seu uso desenvolvendo o exemplo prático. Além de realizar a indexação é possível realizar buscas onde os resultados podem ser ordenados, negritar o texto achado, buscar por palavras aproximadas, fazer pesquisa com a utilização de condicionais lógicas, indexar informações em arquivos que podem ficar alocados tanto no disco quanto na memória, fazer a busca em mais de um índice e muito mais.
O projeto Lucene
O Lucene começou a ser desenvolvido no final de 1997 por Doug Cutting, com a linguagem de programação Java. Em 2000 o projeto Lucene foi lançado no SourceForge, dessa forma os usuários foram apresentados a essa ferramenta de busca, que após um ano da sua divulgação conseguiu vários utilizadores, tornando-se membro do Apache Jakarta (projeto que reúne soluções e frameworks em Java de alta qualidade e colaboração). Dessa forma o projeto ganhou força na sua divulgação e consequentemente por ser Open Source, a colaboração na implementação e melhorias fluíram ao longo dos anos, aumentando a quantidade de colaboradores. Para atender a essa gama de desenvolvedores foi necessário fazer a implementação para outras linguagens de programação, como o C#, Perl, Python e C++.
A Figura 1 mostra em linhas gerais o processo de indexação de texto usado pelo Lucene.net. O motivo de mostrar esse processo é facilitar o entendimento de como é feita a indexação, a procura e ao final, a exibição do resultado para o usuário. Perceba que o texto pode ser extraído de um arquivo HTML, Word, PDF, uma base de dados dentre outras fontes. O mecanismo de extração desse texto fica a cargo do desenvolvedor, pois quando o texto é obtido, o mesmo é repassado ao Lucene.Net para sofrer uma análise.
Figura 1. Visão geral da indexação de texto
Analyzer
Antes de criar o índice, que é o local onde informações analisadas estão alojadas, esses dados passam por um processo de análise realizado pelo Analyzer do framework. Esse Analyzer, que nada mais é do que uma classe, pode tratar a informação passada a ele de diversas maneiras, aplicando tipos de análise. Vamos compreender de forma rápida cada uma delas:
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

Você está em:
canal .net
Publicidade
Erysson Batista Barros De Souza
Space do autor
Tenho experiência em ASP.NET utilizando a linguagem C#.
Sou formado em Sistemas de Informação pelo o Instituto de Estudos Superiores da Amazônia – IESAM e Especialista em Tecnologia de Desenvolvimento de Softwares pelo Centro Universitário do Pará – CESUPA.
Trabalho no Tribunal de Contas do Estado...
Space do autor


0
0
