Sé que ElasticSearch se basa en Apache Lucene, pero quiero saber las diferencias significativas entre los dos.
Sé que ElasticSearch se basa en Apache Lucene, pero quiero saber las diferencias significativas entre los dos.
Respuestas:
Lucene es una biblioteca de Java . Puede incluirlo en su proyecto y consultar sus funciones mediante llamadas a funciones.
Elasticsearch es un JSON basado, distribuida , servidor web construido sobre Lucene. Aunque es Lucene quien está haciendo el trabajo real debajo, Elasticsearch nos proporciona una capa conveniente sobre Lucene. Cada fragmento que se crea en Elasticsearch es una instancia de Lucene separada. Entonces para resumir
Además de las palabras de @Vineeth Mohan :
Alta disponibilidad: Elasticsearch se distribuye para que pueda administrar la replicación de datos, lo que significa tener múltiples copias de datos en su clúster. Esto permite una alta disponibilidad.
Potente DSL de consulta : Elasticsearch nos ofrece una interfaz JSON para leer y escribir consultas sobre Lucene. Gracias a Elasticsearch, puede escribir consultas complejas sin conocer la sintaxis de Lucene.
Sin esquema (sin esquema): los campos (nombre, pares de valores) schema
no tienen que definirse antes. Cuando indexa datos, Elasticsearch puede crear esquemas automáticamente en tiempo de ejecución, como magia.
Contestaré desde una perspectiva de uso.
Lucene es una biblioteca de motores de búsqueda . Desea usarlo para crear su propio motor de búsqueda: ya sea un nuevo competidor de Elasticsearch o Solr o algo limitado para su caso de uso (por ejemplo, análisis de texto).
Elasticsearch es un motor de búsqueda . La mayoría de las personas lo usan para la agregación de registros, la búsqueda de productos o una variante de estos dos (por ejemplo, análisis de redes sociales o búsqueda de personas relevantes para algunos criterios de búsqueda). Está construido sobre Lucene, por lo que expone la mayoría (aunque no todas) de sus características . También agrega mucho en la parte superior, lo más importante: