Sei que o ElasticSearch é baseado no Apache Lucene, mas quero saber as diferenças significativas entre os dois.
Sei que o ElasticSearch é baseado no Apache Lucene, mas quero saber as diferenças significativas entre os dois.
Respostas:
Lucene é uma biblioteca Java . Você pode incluí-lo em seu projeto e consultar suas funções usando chamadas de função.
O Elasticsearch é um servidor da Web baseado em JSON , distribuído e construído sobre o Lucene. Embora Lucene esteja realizando o trabalho real abaixo, o Elasticsearch fornece uma camada conveniente sobre o Lucene. Cada shard criado no Elasticsearch é uma instância separada do Lucene. Então, para resumir
Além das palavras de @Vineeth Mohan :
Alta disponibilidade: o Elasticsearch é distribuído, para que ele possa gerenciar a replicação de dados, o que significa ter várias cópias de dados em seu cluster. Isso permite alta disponibilidade.
DSL poderoso de consulta : a Elasticsearch oferece uma interface JSON para ler e escrever consultas sobre o Lucene. Graças ao Elasticsearch, você pode escrever consultas complexas sem conhecer a sintaxe do Lucene.
Sem esquema (sem esquema): Os campos (nome, pares de valores) para schema
não precisam ser definidos antes. Quando você indexa dados, a elasticsearch pode criar esquemas automaticamente em tempo de execução, como mágica.
Eu responderei da perspectiva do uso.
Lucene é uma biblioteca de mecanismos de busca . Você deseja usá-lo para criar seu próprio mecanismo de pesquisa: um novo concorrente do Elasticsearch ou Solr ou algo restrito para o seu caso de uso (por exemplo, análise de texto).
O Elasticsearch é um mecanismo de pesquisa . A maioria das pessoas o utiliza para agregação de logs, pesquisa de produtos ou uma variante desses dois (por exemplo, análise de mídia social ou encontrar pessoas relevantes para alguns critérios de pesquisa). Ele é construído sobre o Lucene, e expõe a maioria (embora não todos) de seus recursos . Também adiciona muito em cima, mais significativamente: