163 votes

Différence entre solr et lucene

Je sais que Lucene et Solr sont deux projets Apache différents conçus pour fonctionner ensemble, mais je ne comprends pas quel est l'objectif de chaque projet.

Ce que j'ai compris jusqu'à présent, c'est que Lucene est utilisée pour créer un index de recherche et que Solr utilise cet index pour effectuer des recherches. Ai-je raison ou s'agit-il d'une approche totalement différente?

229voto

phani Points 1676

@darkheir: Lucene et Solr sont de 2 types d'Apache projets qui sont faits pour travailler ensemble, je ne comprends pas quel est l'objectif de chaque projet.

1) Lucene et Solr sont PAS créés pour travailler ensemble. Seulement Solr utilise Lucene sous le capot. Lucene n'a aucune idée sur Solr API.

2) Lucene est un moteur de recherche puissant cadre qui nous permet d'ajouter une fonctionnalité de recherche pour notre application. Il expose facile-à-utilisation de l'API tout en masquant la recherche liée à des opérations complexes. Toute application peut utiliser cette bibliothèque, et pas seulement Solr.

3) Solr est construit autour de Lucene. Ce n'est pas seulement un http-wrapper autour de Lucene, mais a été connu pour ajouter plus de l'arsenal de Lucene. Solr est prêt à l'emploi hors de la boîte. C'est une application web qui offre des infrastructures connexes et beaucoup plus de fonctionnalités, en plus de ce Lucene offre.

@darkheir: Lucene est utilisé pour créer un index de recherche et de Solr utiliser cet indice pour effectuer des recherches. Ai-je raison ou est-ce une approche totalement différente?

4) Lucene n'est pas seulement de créer de l'Indice de la consommation par Solr. Lucene gère toutes les opérations liées à la recherche d'. Toute application peut utiliser lucene cadre.

Des exemples sont Solr, Elastic Search, LinkedIn (oui, sous le capot), etc..

Découvrez cet article: Lucene vs Solr

Mise à JOUR (6/18/14)

Lors de l'utilisation de Lucene?

  • Vous êtes un ingénieur de recherche ET
  • Vous êtes un programmeur, ET
  • Vous voulez un contrôle complet sur presque tous les internes de Lucene ET
  • Vos besoins vous demande de faire toutes sortes de geek de personnalisation de Lucene. ET
  • Vous êtes prêt à prendre soin des éléments de l'infrastructure de votre recherche, comme la mise à l'échelle, la distribution, etc.

Quand utiliser Solr?

  • Au moins l'un des ci-dessus n'a pas de sens. OU
  • Vous voulez quelque chose qui est prêt à l'utilisation en dehors-de-le-boîte (même sans connaissance de Java) OU
  • Vos exigences en matière d'infrastructure, l'emportent sur la recherche de personnalisation exigences.

NOTE: Je ne veux pas dire que Solr est difficile à personnaliser. Solr est très souple et offre beaucoup de enfichables API points, vous permettant de vous lancer dans votre code.

Il y a des gens, tomber sous"utiliser Lucenecamp, mais préfèrent encore Solr à la plaine de Lucene comme il est facile à utiliser. Cependant, ils n'ont jamais empêcher de personnalisation de Solr dans la mesure maximale.

BTW, je vois qu'il y a plus de ressources sur Solr (4.x) que Lucene (4.x).

31voto

mindas Points 14217

Lucene est une bibliothèque Java de bas niveau (avec des ports pour .NET, etc.) qui implémente l'indexation, l'analyse, la recherche, etc.

Solr est un produit / application Web préconfiguré autonome qui utilise Lucene. Si vous préférez utiliser l'API HTTP plutôt que l'API Java, Solr est fait pour vous. Solr dispose également de fonctionnalités supplémentaires (par exemple, le regroupement ).

21voto

Vikas Kumar Points 397

Un moyen simple de conceptualiser la relation entre Solr et Lucene est celui d’une voiture et de son moteur. Vous ne pouvez pas conduire de moteur, mais vous pouvez conduire une voiture. De même, Lucene est une bibliothèque de programmation que vous ne pouvez pas utiliser telle quelle, tandis que Solr est une application complète que vous pouvez utiliser directement.

2voto

Yonik Points 301

C'est un http-wrapper autour de Lucene.

Solr a toujours été beaucoup plus que cela. http://heliosearch.org/lucene-solr-history/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X