Diferencia entre solr y lucene

163

Sé que Lucene y Solr son 2 proyectos Apache diferentes que están diseñados para trabajar juntos, pero no entiendo cuál es el objetivo de cada proyecto.

Lo que entendí hasta ahora es que Lucene se usa para crear un índice de búsqueda y Solr usa este índice para realizar búsquedas. ¿Estoy en lo cierto o es un enfoque totalmente diferente?

Darkheir
fuente
55
¿ Lucene.apache.org/solr (y la página equivalente de Lucene) no responde eso?
NPE
Sí, tienes razón, la página de características de Solr aclara la diferencia. Si, si entiendo, podría usar Lucene solo, pero Solr necesita que Lucene funcione.
darkheir
2
A diferencia de Lucene, Solr es una aplicación web (WAR) que se puede implementar en cualquier contenedor de servlet, por ejemplo, Jetty, Tomcat, Resin, etc. Solr puede ser instalado y utilizado por no programadores. Lucene no puede. Más en lucenetutorial.com/lucene-vs-solr.html
Lucky

Respuestas:

229

@darkheir: Lucene y Solr son 2 proyectos Apache diferentes que están hechos para trabajar juntos, no entiendo cuál es el objetivo de cada proyecto.

1) Solr usa Lucene debajo del capó. Lucene no tiene idea de la API de Solr.

2) Lucene es un potente marco de motor de búsqueda que nos permite agregar capacidad de búsqueda a nuestra aplicación. Expone una API fácil de usar al tiempo que oculta todas las operaciones complejas relacionadas con la búsqueda. Cualquier aplicación puede usar esta biblioteca, no solo Solr.

3) Solr está construido alrededor de Lucene. No es solo un envoltorio http alrededor de Lucene, sino que se sabe que agrega más arsenal a Lucene . Solr está listo para usar de fábrica. Es una aplicación web que ofrece infraestructura relacionada y muchas más funciones además de lo que ofrece Lucene.

@darkheir: Lucene se usa para crear un índice de búsqueda y Solr usa este índice para realizar búsquedas. ¿Estoy en lo cierto o es un enfoque totalmente diferente?

4) Lucene no solo crea el Índice para el consumo de Solr . Lucene maneja todas las operaciones relacionadas con la búsqueda. Cualquier aplicación puede usar el marco Lucene.

Ejemplos son Solr, Elastic Search, LinkedIn (sí, bajo el capó), etc.

Mira este artículo: Lucene vs Solr

ACTUALIZACIÓN (18/06/14)

¿Cuándo usar Lucene?

  • Eres un ingeniero de búsqueda Y
  • Eres un programador Y
  • Desea un control total sobre casi todos los elementos internos de Lucene Y
  • Sus requisitos exigen que haga todo tipo de personalizaciones geek a Lucene Y
  • Está dispuesto a ocuparse de los elementos de infraestructura de su búsqueda, como el escalado, la distribución, etc.

¿Cuándo usar Solr?

  • Al menos uno de los anteriores no tenía sentido. O
  • Desea algo listo para usar listo para usar (incluso sin conocimiento de Java) O
  • Sus requisitos de infraestructura superan los requisitos de personalización de búsqueda.

NOTA : No quiero decir que Solr sea difícil de personalizar. Solr es muy flexible y proporciona muchos puntos de API conectables, lo que le permite agregar su código.

Hay personas, que caen en el campamento ' tengo que usar Lucene ', pero aún prefieren Solr a Lucene simple, ya que es fácil de usar. Sin embargo, nunca se limitan a personalizar Solr al máximo.

Por cierto, veo que hay más recursos en Solr (4.x) que Lucene (4.x).

phanin
fuente
31

Lucene es una biblioteca Java de bajo nivel (con puertos a .NET, etc.) que implementa indexación, análisis, búsqueda, etc.

Solr es un producto / aplicación preconfigurada independiente que utiliza Lucene. Si prefiere tratar con la API HTTP en lugar de la API Java, Solr es para usted. Solr también tiene algunas características adicionales en la parte superior (por ejemplo, agrupación ).

mindas
fuente
21

Una manera simple de conceptualizar la relación entre Solr y Lucene es la de un automóvil y su motor. No puede conducir un motor, pero puede conducir un automóvil. Del mismo modo, Lucene es una biblioteca programática que no puede usar tal cual, mientras que Solr es una aplicación completa que puede usar de manera inmediata.

Fuente: Lucene-vs-solr - Tutorial de Lucene

Vikas Kumar
fuente
55
El cual está copiado de lucenetutorial.com/lucene-vs-solr.html. Mencione la fuente cada vez que copie y pegue la respuesta citando la fuente. ;)
Afortunado
1
La página parece estar fuera de línea ahora.
dev_feed
15

Solr está construido sobre lucene para proporcionar una plataforma de búsqueda.

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: Crear información del documento para indexar
  • Indexación y búsqueda
    • Propósito: construir y consultar un índice de documento
  • Mejora 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 o aplicaciones de búsqueda de usuario final

pila de solr

Artículo de referencia: búsqueda empresarial

mingxue
fuente
12

SOLR es un contenedor sobre el índice de Lucene.

Es simple de entender: SOLR es automóvil y Lucene es su motor . Solo necesita saber cómo conducir un automóvil (SOLR) y también debe saber algunas cosas del motor (Lucene) en caso de que haya algún problema en el motor de su automóvil.

Tener un disco seguro :)

Behzad Qureshi
fuente
3
Sin mencionar que si estuviera tan inclinado, podría construir su propio automóvil con el motor Lucene.
Sugerencia
1

Puede imaginarlo de la siguiente manera: Apache Lucene es la biblioteca que internamente utiliza Apache Solr. Está escrito en Java y proporciona sorprendentes capacidades de búsqueda e indexación de texto completo. Puede analizar una gran cantidad de idiomas de todo el mundo y preparar el texto en dichos idiomas para una búsqueda y análisis eficiente y rápido. Lucene es una biblioteca: puede usarla directamente en su aplicación e implementar todo usted mismo, pero el Apache Solr proporciona mucho de forma inmediata.

El motor de búsqueda Apache Solr proporciona cosas como las API HTTP que puede usar para enviarles datos y luego buscar en esos datos. Puede controlar los motores de búsqueda utilizando la API, crear entornos distribuidos y distribuir automáticamente los datos en múltiples nodos y muchos, muchos más.

Rafal
fuente