terça-feira, 15 de abril de 2008

Lucene - crie sua search engine

Alguns meses entrei em contato com esta biblioteca chamada Lucene - uma biblioteca desenvolvida inteiramente em java pela Apache Software Foundation para criação de search engines - atualmente encontrada na versão 2.2.0
Diversos sistemas de grande conteúdo utilizam essa ferramenta como por exemplo o Joost e o Wikipedia.
Existem diversas versões para outras linguagens como por exemplo o CLucene para C++, o RubyLucene para Ruby e o Zend Search Lucene para PHP.
A Estrutura do Lucene faz com que os documentos sejam divididos em Fields. Estes fields são feitos para armazenar diferentes "campos" do documento como título, conteúdo, palavras-chave para tornar a pesquisa mais seletiva e seja possível criar uma espécie de prioridade entre os campos. O Lucene também retorna o número de vezes que a expressão buscada aparece em cada documento.
Os Fields ficam armazenados em Docs. Que nada mais são que conjuntos de campos de um determinado documento.
Podem ser implementados diversos tipos de Ordenação das buscas o que facilita na hora de implementar buscas diferenciadas. Uma busca já implementada na biblioteca é a que procura em todos os Fields com maior prioridade no título e nas palavras-chave.
Para os mais interessados existe um livro que explica de maneira bem simples o uso do Lucene, o Lucene In Action, que apesar de utilizar uma versão antiga do Lucene, necessita de poucas modificações quanto a versão antiga da biblioteca.

2 comentários:

rafael disse...

bacana esse lucene, vc tinha comentado comigo sobre ele ano passado...
vc escolhe tb o mecanismo de indexacao?
[]'s guaru!!!

Lucas Gameiro disse...

Falha minha não especifiquei direito... ele cuida tanto da indexação quanto da busca...

Quem sou eu

Lucas Gameiro
Londrina, PR, Brazil
Graduando Ciência da Computação na Universidade Estadual de Londrina, natural de Guarujá-SP
Visualizar meu perfil completo