Eu vou precisar trabalhar com buscas em textos e estou pensando em utilizar a biblioteca Apache Lucene (http://lucene.apache.org). Já fiz uns testes aqui e me pareceu interessante
Entretanto, gostaria de saber se alguem daqui já a utilizou numa situação real, se teve boas ou más experiências, ou se me indicam uma outra solução mais adequada.
Lucene é um dos meus atuais interesses. Apenas comecei a estuda-lo e não manjo tanto como o Rafael que já trabalhou com ele. Mas pelo que já pude perceber ele é muito interessante.
Há outra alternativas de busca isoladas mas não conheço nenhuma outra que se integre ao seu sistema Java.
[]s
Luca
fcanjos
Pessoal,
O Lucene continua sendo uma boa opção mesmo a massa de dados textuais estando em um banco de dados ao invés de arquivos?
Rafael_Steil
Sim. Eh ligeiramente um pouco mais chato de fazer, ja que vc tem que criar 2 ou 3 objetos manualmente e dizer ao Lucene como tratar cada campo da tabela. Ai ele vai gerar um indice em disco, independentemente do banco de dados.
Fazer buscas no banco de dados performaticas eh algo relativamente trabalhoso, pois usar LIKE %string% mata a performance, te obrigando entao a usar uma abordagem bem diferente para nao sacrificar o sistema.
Logo, o Lucene vai ser uma otima ferramenta para esta tarefa.
Rafael
ricardolecheta
Rafael Steil:
Eh ligeiramente um pouco mais chato de fazer, ja que vc tem que criar 2 ou 3 objetos manualmente e dizer ao Lucene como tratar cada campo da tabela. Ai ele vai gerar um indice em disco, independentemente do banco de dados.
Neste caso de banco de dados, como funciona quando vc altera algum campo da tabela? Por exemplo após vc fazer um “update” na base, vc precisa recriar os indices certo?
Rafael_Steil
Sim. Voce precisa dar um delete o registro e entao inserir de novo.
Rafael
fcanjos
Uma outra questão sobre o Lucene,
Verifiquei a necessidade de se implementar um Analyser adaptado a lingua portuguesa, devido as “stop words” e ao processo de stemming. Procurei algo já pronto e não encontrei.
Por acaso vcs sabem de algo que eu possa utilizar?? Ou terei eu mesmo que implementar??
Rafael_Steil
Se vc nao encontrar alguem que ja tenha feito e que te disponibilize, entao vc tem que implementar. Porem, isso nao eh mandatorio para ter o Lucene funcionando. Definir as stop words vai fazer com o que o indice tenha mais qualidade de conteudo apenas.
Ressalto que ainda não fiz testes com essas classes…
No mais, valeu pela força aí!!!
É isso…
E
everson_cardoso
Olá pessoal,
Aproveitando o gancho desse tópico.
Alguém pode detalhar melho o uso do lucene com Banco de Dados ou exemplinho, pra facilitar o entendimento?
To precisando usar esse cara. Se puderem ajudar
vlw!
A
Alexandre_Ferreira1
Eu tmb gostaria. Alguem pode ajudar na integracao Lucene x BD.
Lucas, FCanjos e Rafael , como andam os projetos com lucene x BD.
Eu ia usar o MySQL
L
lindermann
Rafael Steil:
Se vc nao encontrar alguem que ja tenha feito e que te disponibilize, entao vc tem que implementar. Porem, isso nao eh mandatorio para ter o Lucene funcionando. Definir as stop words vai fazer com o que o indice tenha mais qualidade de conteudo apenas.
Rafael
Pelo que entendi na documentação do Lucene, vai ter problema com acentos e realização de busca fonética também, não é só na qualidade do índice.
Só para dar mais uma dica, você pode trabalhar com o Lucene através de ORM, por intermédio do projeto Compass (mais maduro) e o projeto Hibernate Search.