Diferença entre solr e lucene

163

Sei que Lucene e Solr são dois projetos diferentes do Apache que são feitos para trabalhar juntos, mas não entendo qual é o objetivo de cada projeto.

Pelo que entendi até agora, o Lucene é usado para criar um índice de pesquisa e o Solr usa esse índice para realizar pesquisas. Estou certo ou é uma abordagem totalmente diferente?

darkheir
fonte
5
Não lucene.apache.org/solr (ea página equivalente para Lucene) resposta que?
NPE
Sim, você está certo, a página de recursos do solr esclarece a diferença. Si Se eu entendi, poderia usar Lucene sozinho, mas Solr precisa que Lucene funcione.
darkheir
2
Diferentemente do Lucene, o Solr é um aplicativo da Web (WAR) que pode ser implantado em qualquer contêiner de servlet, por exemplo, Jetty, Tomcat, Resin etc. O Solr pode ser instalado e usado por não programadores. Lucene não pode. Mais sobre lucenetutorial.com/lucene-vs-solr.html
Lucky

Respostas:

229

@darkheir: Lucene e Solr são dois projetos diferentes do Apache que são feitos para trabalhar juntos, não entendo qual é o objetivo de cada projeto.

1) Solr usa Lucene sob o capô. Lucene não tem idéia sobre a API Solr.

2) Lucene é uma poderosa estrutura de mecanismo de pesquisa que nos permite adicionar recursos de pesquisa ao nosso aplicativo. Ele expõe uma API fácil de usar enquanto oculta todas as operações complexas relacionadas à pesquisa. Qualquer aplicativo pode usar esta biblioteca, não apenas o Solr.

3) Solr é construído em torno do Lucene. Não é apenas um invólucro http em torno do Lucene, mas é conhecido por adicionar mais arsenal ao Lucene . O Solr está pronto para uso pronto para uso. É um aplicativo da web que oferece infraestrutura relacionada e muito mais recursos, além do que o Lucene oferece.

@arkheir: Lucene é usado para criar um índice de pesquisa e o Solr usa esse índice para realizar pesquisas. Estou certo ou é uma abordagem totalmente diferente?

4) Lucene não cria apenas o Índice para o consumo da Solr . O Lucene lida com todas as operações relacionadas à pesquisa. Qualquer aplicativo pode usar a estrutura Lucene.

Exemplos são Solr, Elastic Search, LinkedIn (sim, sob o capô), etc.

Confira este artigo: Lucene vs Solr

ATUALIZAÇÃO (18/6/14)

Quando usar o Lucene?

  • Você é um engenheiro de pesquisa E
  • Você é um programador E
  • Você quer controle total sobre quase todos os componentes internos da Lucene AND
  • Seus requisitos exigem que você faça todos os tipos de personalização nerd no Lucene AND
  • Você deseja cuidar dos elementos de infraestrutura de sua pesquisa, como dimensionamento, distribuição etc.

Quando usar o Solr?

  • Pelo menos um dos itens acima não fazia sentido. OU
  • Você deseja algo pronto para uso imediato (mesmo sem o conhecimento de Java) OU
  • Seus requisitos de infraestrutura superam os requisitos de personalização de pesquisa.

NOTA : Não quero dizer que o Solr seja difícil de personalizar. O Solr é muito flexível e fornece muitos pontos de API conectáveis, permitindo que você introduza seu código.

Há pessoas que se enquadram no campo ' tem que usar Lucene ', mas ainda preferem Solr a planificar Lucene, pois é fácil de usar. No entanto, eles nunca se restringem a personalizar o Solr na extensão máxima.

BTW, vejo que há mais recursos no Solr (4.x) que Lucene (4.x).

phanin
fonte
31

Lucene é uma biblioteca Java de baixo nível (com portas para .NET etc.) que implementa indexação, análise, pesquisa etc.

O Solr é um produto / aplicativo da web independente e pré-configurado que usa o Lucene. Se você prefere lidar com a API HTTP em vez da API Java, o Solr é para você. O Solr também possui alguns recursos extras (por exemplo, agrupamento ).

mindas
fonte
21

Uma maneira simples de conceituar a relação entre Solr e Lucene é a de um carro e seu motor. Você não pode dirigir um motor, mas você pode dirigir um carro. Da mesma forma, o Lucene é uma biblioteca programática que você não pode usar como está, enquanto o Solr é um aplicativo completo que você pode usar pronto para uso.

Fonte: Lucene-vs-solr - Tutorial Lucene

Vikas Kumar
fonte
5
Que é copiado e colado em lucenetutorial.com/lucene-vs-solr.html Por favor mencione a fonte sempre que copiar e colar e responder citando a fonte. ;)
Sorte
1
Página parece estar offline agora.
Dev1feed
15

O Solr é construído sobre o lucene para fornecer uma plataforma de pesquisa.

Pesquise a plataforma nas seguintes camadas, de baixo para cima:

  • Dados
    • Objetivo: representar vários tipos e fontes de dados
  • Construção de documentos
    • Objetivo: criar informações do documento para indexação
  • Indexação e pesquisa
    • Objetivo: criar e consultar um índice de documento
  • Aprimoramento da lógica
    • Objetivo: Lógica adicional para processar consultas e resultados de pesquisa
  • Serviço de plataforma de pesquisa
    • Objetivo: adicionar funcionalidades adicionais do núcleo do mecanismo de pesquisa para fornecer uma plataforma de serviço.
  • Aplicativo de interface do usuário
    • Objetivo: Interface ou aplicativos de pesquisa do usuário final

pilha solr

Artigo de referência: Pesquisa corporativa

mingxue
fonte
12

SOLR é um invólucro sobre o índice Lucene.

É simples de entender: SOLR é carro e Lucene é seu motor . Você só precisa saber como dirigir um carro (SOLR) e também conhecer algumas coisas do motor (Lucene), caso haja algum problema no motor do seu carro.

Tenha uma unidade segura :)

Behzad Qureshi
fonte
3
Sem mencionar que, se você fosse tão inclinado, poderia construir seu próprio carro usando o motor Lucene.
Hintss
1

Você pode imaginar da seguinte maneira - Apache Lucene é a biblioteca usada internamente pelo Apache Solr. Está escrito em Java e oferece incríveis recursos de pesquisa e indexação de texto completo. Ele pode analisar um grande número de idiomas de todo o mundo e preparar o texto nesses idiomas para uma pesquisa e análise eficientes e rápidas. O Lucene é uma biblioteca - você pode usá-lo diretamente em seu aplicativo e implementar tudo sozinho, mas o Apache Solr fornece muito de imediato.

O mecanismo de pesquisa do Apache Solr fornece coisas como APIs HTTP que você pode usar para enviar dados a eles e pesquisar posteriormente nesses dados. Você pode controlar os mecanismos de pesquisa usando a API, criar ambientes distribuídos e distribuir automaticamente os dados por vários nós e muitos, muitos mais.

Rafal
fonte
0

Você pode encontrar uma boa comparação sobre o propósito da lucência e da energia solar aqui:

http://www.lucenetutorial.com/lucene-vs-solr.html

TLDR: Lucence é apenas o motor, Solar é o carro que você pode dirigir (equipado com rest-api etc.)

Martin Abraham
fonte