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.
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.
[quote=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.
[/quote]
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?
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??
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.
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!
[quote=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[/quote]
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.