TransWikia.com

Solr, Lucene e ElasticSearch quais as diferenças? Quando usar um ou outro?

Stack Overflow em Português Asked by Guilherme de Jesus Santos on January 7, 2021

Qual a diferença entre ElasticSearch, Solr e Lucene?

Quando usar um ou outro?

One Answer

Você deve saber que ambos servem para fazer buscas em conteúdos diversos.

Lucene

Lucene está em um nível mais baixo. Por isso dá mais flexibilidade e ajuste fino do que deseja fazer. Por outro lado você tem que saber fazer tudo o que precisa, dá mais trabalho. Costuma ser interessante quando quer embutir a busca dentro da sua aplicação e processá-la como quiser.

Solr

Solr é uma abstração construída em cima do Lucene e é bem mais fácil de usar, com quase tudo pronto. Ainda é possível ter bastante flexibilidade, mas para isso dá mais trabalho e tem algumas limitações, dá menos trabalho fazer o padrão dele. Ele atende a maioria das situações já que é mais ou menos raro precisar fazer algo diferente do que ele oferece.

Existe uma infraestrutura mais ampla oferecida por esta ferramenta. Isto inclui serviços HTTP que permitem usar a busca até mesmo sem usar a API na linguagem de programação (Java por exemplo) e sim consumir o serviço pronto pela web.

Alguns recursos disponíveis:

  • API HTTP trocando dados com XML/JSON
  • Filtragem e busca dirigida (auxiliadores de busca como sugestão)
  • Busca geoespacial
  • Atualização incremental
  • Cache
  • Distribuição e replicação de dados
  • Replicação de índice
  • Painel administrativo.

Note que versões mais recentes do Lucene já possuem muitos dos recursos do Solr e está cada vez mais diminuindo a distância entre eles. Mas ainda há a diferença de como o serviço é oferecido.

Elastic Search

O Elastic Search é um concorrente do Solr. Ele é considerado mais moderno por muitos e de fato tem mais facilidades que o Solr, tem um modelo que atende melhor muitas necessidades, principalmente de distribuição (o que é raro precisar) e atualização próxima do tempo real. Não dá para dizer que ele é mais adequado que o Solr sempre, até porque ele tem algumas limitações também, o modelo dele pode dificultar certas necessidades. E dizem ser ainda mais fácil trabalhar com ele.

Tem um site que faz uma comparação entre eles (que são mais comparáveis diretamente).

Funcionalidade e escala

Um erro comum é as pessoas acharem que todo mundo precisa da solução mais escalável possível. Não, você não é o Facebook. Ou mesmo a Stack Exchange que é absurdamente menor. Quando eu falo que o SQLite está bom para 90% dos casos e um servidor SQL resolve 99% que tenha full text search, tem gente que não acredita.

Estes mecanismos são ótimos e algumas coisas prontas deles são bem interessantes, mas raramente precisa-se de algo além do trivial, especialmente quando falamos de escala.

Correct answer by Maniero on January 7, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP