Pregunta Solr vs. ElasticSearch


¿Cuáles son las principales diferencias arquitectónicas entre estas tecnologías?

Además, ¿qué casos de uso son generalmente más apropiados para cada uno?


658
2018-04-18 15:42


origen


Respuestas:


Actualizar

Ahora que se ha corregido el alcance de la pregunta, también podría agregar algo al respecto:

Hay muchas comparaciones entre Apache Solr y ElasticSearch disponible, por lo que haré referencia a los que me resultaron más útiles, es decir, cubriendo los aspectos más importantes:

  • Bob Yoplait ya vinculó la respuesta de kimchy a ElasticSearch, Sphinx, Lucene, Solr, Xapian. ¿Cuál se ajusta a qué uso?, que resume las razones por las cuales siguió adelante y creó ElasticSearch, que en su opinión proporciona un modelo distribuido muy superior y facilidad de uso en comparación con Solr.

  • Ryan Sonnek Búsqueda en tiempo real: Solr vs Elasticsearch proporciona un análisis / comparación perspicaz y explica por qué cambió de Solr a ElasticSeach, a pesar de ser un usuario feliz de Solr, lo resume de la siguiente manera:

    Solr puede ser el arma de elección al construir búsqueda estándar   aplicaciones, pero Elasticsearch lo lleva al siguiente nivel con un    arquitectura para crear aplicaciones modernas de búsqueda en tiempo real.   La percolación es una característica emocionante e innovadora que por sí sola   sopla Solr directamente fuera del agua. Elasticsearch es escalable, veloz   y un sueño para integrarse con. Adios Solr, fue lindo conocerte. [énfasis mío]

  • El artículo de Wikipedia sobre ElasticSearch cita una comparación de la reputada revista alemana iX, que enumera las ventajas y desventajas, que prácticamente resumen lo que se ha dicho anteriormente:

    Ventajas:

    • ElasticSearch se distribuye. No se requiere un proyecto separado. Las réplicas también son casi en tiempo real, lo que se llama "replicación de inserción".
    • ElasticSearch es totalmente compatible con la búsqueda casi en tiempo real de Apache   Lucene.
    • El manejo de multitenancy no es una configuración especial, donde   con Solr es necesaria una configuración más avanzada.
    • ElasticSearch presenta   el concepto de Gateway, que facilita las copias de seguridad completas.

    Desventajas:

    • Solo un desarrollador principal  [no aplicable más según la corriente elasticsearch Organización GitHub, además de tener una base de committer bastante activa en primer lugar]
    • Sin función de auto calentamiento  [no se aplica más de acuerdo con el nuevo Index Warmup API]

Respuesta inicial

Son tecnologías completamente diferentes que abordan casos de uso completamente diferentes, por lo que no se pueden comparar en absoluto de ninguna manera significativa:

  • Apache Solr - Apache Solr ofrece las capacidades de Lucene de una manera fácil de usar y rápida servidor de búsqueda con características adicionales como faceting, escalabilidad y mucho más

  • Amazon ElastiCache - Amazon ElastiCache es un servicio web que facilita la implementación, el funcionamiento y la escala de un caché en memoria en las nubes.

    • Tenga en cuenta que Amazon ElastiCache cumple con el protocolo de Memcached, un sistema de memoria caché de objetos de memoria ampliamente adoptado, por lo que el código, las aplicaciones y las herramientas populares que utiliza actualmente con los entornos existentes de Memcached funcionarán perfectamente con el servicio. (ver Memcached para detalles).

[énfasis mío]

Quizás esto se ha confundido con las siguientes dos tecnologías relacionadas de una forma u otra:

  • ElasticSearch - Es un motor de búsqueda de código abierto (Apache 2), distribuido, RESTful, construido sobre Apache Lucene.

  • Amazon CloudSearch - Amazon CloudSearch es un servicio de búsqueda totalmente administrado en la nube que permite a los clientes integrar fácilmente funcionalidades de búsqueda rápidas y altamente escalables en sus aplicaciones.

los Solr y ElasticSearch las ofertas suenan sorprendentemente similares a primera vista, y ambas usan el mismo motor de búsqueda de back-end, a saber Apache Lucene.

Mientras Solr es más viejo, bastante versátil y maduro y ampliamente utilizado en consecuencia, ElasticSearch ha sido desarrollado específicamente para abordar Solr deficiencias con requisitos de escalabilidad en entornos de nube modernos, que son difíciles (er) de abordar con Solr.

Como tal, probablemente sería más útil comparar ElasticSearch con el recientemente introducido Amazon CloudSearch (ver la publicación introductoria Comience a buscar en una hora por menos de $ 100 / mes), porque ambos pretenden cubrir los mismos casos de uso en principio.


503
2018-04-18 16:15



Veo que algunas de las respuestas anteriores están un poco desactualizadas. Desde mi punto de vista, y trabajo tanto con Solr (nube y sin nube) como con ElasticSearch diariamente, aquí hay algunas diferencias interesantes:

  • Comunidad: Solr tiene una comunidad de usuarios, desarrolladores y contribuyentes más grande y más madura. ES tiene una comunidad de usuarios más pequeña pero activa y una creciente comunidad de contribuyentes
  • Madurez: Solr es más maduro, pero ES ha crecido rápidamente y lo considero estable
  • Rendimiento: difícil de juzgar. Yo / nosotros no hemos hecho pruebas de rendimiento directo. Una persona en LinkedIn sí comparó Solr vs. ES vs. Sensei una vez, pero los resultados iniciales deberían ignorarse porque usaron una configuración no experta tanto para Solr como para ES.
  • Diseño: a la gente le encanta Solr. La API de Java es algo prolija, pero a la gente le gusta cómo se arma. El código de Solr lamentablemente no siempre es muy bonito. Además, ES tiene sharding, replicación en tiempo real, documento y enrutamiento integrados. Mientras que algo de esto existe en Solr, también, se siente un poco como una idea tardía.
  • Soporte: hay compañías que brindan soporte tecnológico y de consultoría tanto para Solr como para ElasticSearch. Creo que la única compañía que brinda soporte para ambos es Sematext (revelación: soy el fundador de Sematext)
  • Escalabilidad: ambos pueden escalarse a clústeres muy grandes. ES es más fácil de escalar que la versión anterior a Solr 4.0 de Solr, pero con Solr 4.0 ya no es el caso.

Para obtener una cobertura más completa del tema Solr vs. ElasticSearch, eche un vistazo a http://blog.sematext.com/2012/08/23/solr-vs-elasticsearch-part-1-overview/ . Esta es la primera publicación de la serie de publicaciones de Sematext que hace una comparación directa y neutral de Solr vs. ElasticSearch. Divulgación: trabajo en Sematext.


184
2017-08-26 15:02



Veo que mucha gente aquí ha respondido a esta pregunta de ElasticSearch vs Solr en términos de características y funcionalidad, pero no veo mucha discusión aquí (ni en ningún otro lado) con respecto a cómo se comparan en términos de rendimiento.

Es por eso que decidí llevar a cabo el mío investigación. Tomé un micro-servicio de fuente de datos heterogéneo ya codificado que ya usaba Solr para búsqueda de términos. Cambié Solr por ElasticSearch, luego ejecuté ambas versiones en AWS con una aplicación de prueba de carga ya codificada y capturé las métricas de rendimiento para el análisis posterior.

Esto es lo que encontré. ElasticSearch tuvo un rendimiento 13% más alto cuando se trataba de documentos de indexación, pero Solr era diez veces más rápido. Cuando se trataba de consultar documentos, Solr tenía cinco veces más rendimiento y era cinco veces más rápido que ElasticSearch.


16
2018-02-26 19:15



He estado trabajando en la búsqueda solr y elástica para aplicaciones .Net. La principal diferencia con la que me he enfrentado es

Búsqueda elástica

  • Más código y menos configuración, sin embargo hay APIs para cambiar pero aún así es un cambio de código
  • para tipos complejos, escriba dentro de tipos, es decir, tipos anidados (no fue posible en solr)

Solr:

  • menos código y más configuración y, por lo tanto, menos mantenimiento
  • para agrupar los resultados durante la consulta (mucho trabajo para lograr en búsqueda elástica en resumen, no de manera directa)

9
2017-09-07 14:35



Desde la larga historia de Apache Solr, creo que una fortaleza del Solr es su ecosistema. Hay muchos complementos de Solr para diferentes tipos de datos y propósitos.

solr stack

Plataforma de búsqueda en las siguientes capas de abajo hacia arriba:

  • Datos
    • Propósito: Representar varios tipos de datos y fuentes
  • Construcción de documentos
    • Propósito: generar información del documento para indexar
  • Indexación y búsqueda
    • Propósito: crear y consultar un índice de documento
  • Mejora de lógica
    • Propósito: lógica adicional para procesar consultas de búsqueda y resultados
  • Servicio de plataforma de búsqueda
    • Propósito: Agregar funcionalidades adicionales del núcleo del motor de búsqueda para proporcionar una plataforma de servicio.
  • Aplicación de interfaz de usuario
    • Propósito: interfaz de búsqueda de usuario final o aplicaciones

Artículo de referencia: Búsqueda empresarial


9
2017-11-11 16:23



Si bien todos los enlaces anteriores tienen mérito, y me han beneficiado mucho en el pasado, como lingüista "expuesto" a varios motores de búsqueda Lucene durante los últimos 15 años, debo decir que el desarrollo de búsqueda elástica es muy rápido en Python. Dicho esto, parte del código me pareció no intuitivo. Entonces, me acerqué a un componente de la pila ELK, Kibana, desde una perspectiva de código abierto, y descubrí que podía generar el código algo críptico de búsqueda elástica con mucha facilidad en Kibana. Además, también pude consultar las consultas sobre el sentido de Chrome en Kibana. Si usa Kibana para evaluar es, acelerará aún más su evaluación. Lo que demoró horas en ejecutarse en otras plataformas estaba funcionando en JSON en Sense en la parte superior de elasticsearch (interfaz RESTful) en unos pocos minutos en el peor (conjuntos de datos más grandes); en segundos en el mejor de los casos La documentación de elasticsearch, aunque tenía más de 700 páginas, no respondía las preguntas que tenía que normalmente se resolverían en SOLR u otra documentación de Lucene, lo que evidentemente tomó más tiempo para analizar. Además, es posible que desee echar un vistazo a Agregados en elástico de búsqueda, que han llevado a Faceting a un nuevo nivel.

Una imagen más grande: si está haciendo ciencia de datos, análisis de texto o lingüística computacional, elasticsearch tiene algunos algoritmos de clasificación que parecen innovar bien en el área de recuperación de información. Si está utilizando algoritmos TF / IDF, Frecuencia de texto / Frecuencia inversa del documento, elasticsearch amplía el algoritmo de los años 60 a un nuevo nivel, incluso utilizando BM25, Mejor coincidencia 25 y otros algoritmos de Clasificación de relevancia. Por lo tanto, si está anotando o clasificando palabras, frases u oraciones, elasticsearch hace esta calificación sobre la marcha, sin la gran sobrecarga de otros enfoques de análisis de datos que toman horas, otro ahorro de tiempo de búsqueda elástica. Con es, combinando algunas de las fortalezas de la agrupación de agregaciones con la puntuación y clasificación de relevancia de datos JSON en tiempo real, puede encontrar una combinación ganadora, dependiendo de su enfoque ágil (historias) o arquitectónico (casos de uso).

Nota: vi una discusión similar sobre las agregaciones anteriores, pero no sobre las agregaciones y la calificación de relevancia, mi disculpa por cualquier superposición. Divulgación: no trabajo para elástico y no podré beneficiarme en un futuro cercano de su excelente trabajo debido a un camino arquitectónico diferente, a menos que haga algún trabajo de caridad con elasticsearch, lo cual no sería una mala idea.


6
2018-02-03 00:04



He creado una tabla de grandes diferencias entre elasticsearch y Solr y splunk, puedes usarla como actualización de 2016: enter image description here


6
2018-05-03 21:51



He usado Elasticsearch durante 3 años y Solr durante aproximadamente un mes, siento que el cluster elástico es bastante fácil de instalar en comparación con la instalación de Solr. Elasticsearch tiene un conjunto de documentos de ayuda con una gran explicación. En uno de los casos de uso me quedé atrapado con la Agregación de Histogramas que estaba disponible en ES pero que no se encontró en Solr.


2
2018-02-26 06:45