187 votes

Différence entre solr et lucene

Je sais que Lucene et Solr sont deux choses différentes. Projets Apache qui sont faits pour fonctionner ensemble, mais je ne comprends pas quel est le but de chaque projet.

Ce que j'ai compris jusqu'à présent, c'est que Lucene est utilisé 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 ?

6 votes

Non. lucene.apache.org/solr (et la page équivalente pour Lucene) répond à cette question ?

1 votes

Oui, vous avez raison, la page des fonctionnalités de Solr clarifie la différence. Si je comprends bien, je pourrais utiliser Lucene seul, mais Solr a besoin de Lucene pour fonctionner.

2 votes

Contrairement à Lucene, Solr est une application web (WAR) qui peut être déployée dans n'importe quel conteneur de servlets, par exemple Jetty, Tomcat, Resin, etc. Solr peut être installé et utilisé par des non-programmeurs. Lucene ne le peut pas. Plus d'informations sur lucenetutorial.com/lucene-vs-solr.html

252voto

phani Points 1676

@darkheir : Lucene et Solr sont 2 projets Apache différents qui sont faits pour fonctionner ensemble, je ne comprends pas quel est le but de chaque projet.

1) Solr utilise Lucene sous le capot. Lucene n'a aucune idée de l'API de Solr.

2) Lucene est un moteur de recherche puissant qui nous permet d'ajouter une capacité de recherche à notre application. Il expose une API facile à utiliser tout en cachant toutes les opérations complexes liées à la recherche. Toute application peut utiliser cette bibliothèque, et pas seulement Solr.

3) Solr est construit autour de Lucene. Il ne s'agit pas seulement d'une enveloppe http autour de Lucene mais de est connu pour ajouter plus d'arsenal à Lucene . Solr est prêt à l'emploi. Il s'agit d'une application web qui offre une infrastructure connexe et beaucoup d'autres fonctionnalités en plus de celles offertes par Lucene.

@darkheir : Lucene est utilisé pour créer un index de recherche et Solr utilise cet index pour effectuer des recherches. Ai-je raison ou s'agit-il d'une approche totalement différente ?

4) Lucene ne se contente pas de créer l'index pour la consommation par Solr. . Lucene gère toutes les opérations liées à la recherche. Toute application peut utiliser le cadre Lucene.

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

Consultez cet article : Lucene et Solr

MISE À JOUR (18/6/14)

Quand utiliser Lucene ?

  • Vous êtes un ingénieur de recherche ET
  • Vous êtes un programmeur ET
  • Vous voulez un contrôle total sur presque tous les éléments internes de Lucene ET
  • Vos exigences vous demandent de faire toutes sortes de personnalisation à Lucene ET
  • Vous êtes prêt à prendre en charge les éléments d'infrastructure de votre recherche comme la mise à l'échelle, la distribution, etc.

Quand utiliser Solr ?

  • Au moins une des propositions ci-dessus n'a pas de sens. OU
  • Vous voulez quelque chose qui soit prêt à l'emploi (même sans connaissance de Java) OU
  • Vos exigences en matière d'infrastructure l'emportent sur les exigences de personnalisation de la recherche.

NOTE : Je ne veux pas dire que Solr est difficile à personnaliser. Solr est très flexible et fournit de nombreux points d'API enfichables, ce qui vous permet de lancer votre code.

Il y a des gens, qui tombent sous le coup de ' doivent utiliser Lucene Mais je préfère encore Solr à Lucene car il est plus facile à utiliser. Cependant, ils ne se retiennent jamais de personnaliser Solr au maximum.

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

1 votes

Le lien "add more arsenal to Lucene" est cassé.

36voto

mindas Points 14217

Lucene est une bibliothèque Java de bas niveau (avec des ports vers .NET, etc.) qui met en œuvre l'indexation, l'analyse, la recherche, etc.

Solr est un produit/webapp autonome et préconfiguré 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 quelques fonctionnalités supplémentaires (par ex. regroupement ).

24voto

Vikas Kumar Points 397

Une façon simple de conceptualiser la relation entre Solr et Lucene est celle d'une voiture et de son moteur. Vous ne pouvez pas conduire un moteur, mais vous mais vous pouvez conduire une voiture. De la même manière, Lucene est une bibliothèque programmatique que vous que vous ne pouvez pas utiliser telle quelle, alors que Solr est une application complète que vous pouvez utiliser tel quel.

Source : Lucene-vs-solr - Tutoriel Lucene

7 votes

Qui est copié-collé de lucenetutorial.com/lucene-vs-solr.html Veuillez mentionner la source lorsque vous copiez-collez une réponse en citant la source ;)

1 votes

Page semble être hors ligne maintenant.

21voto

mingxue Points 571

Solr est construit au-dessus de Lucene pour fournir une plateforme de recherche.

Recherchez la plate-forme dans les couches suivantes, de bas en haut :

  • Données
    • Objectif : Représenter divers types et sources de données
  • Construction de documents
    • Objectif : Construire des informations sur le document pour l'indexation
  • Indexation et recherche
    • Objectif : construire et interroger un index de documents
  • Amélioration de la logique
    • Objectif : logique supplémentaire pour le traitement des requêtes de recherche et des résultats.
  • Service de plateforme de recherche
    • Objectif : ajouter des fonctionnalités supplémentaires au moteur de recherche principal afin de fournir une plate-forme de services.
  • Application UI
    • Objet : interface de recherche ou applications pour l'utilisateur final

solr stack

Article de référence : Recherche en entreprise

15voto

Behzad Qureshi Points 238

Le SOLR est un emballage sur l'index Lucene.

Il est simple à comprendre : Le SOLR est voiture et Lucene est son moteur . Il suffit de savoir comment conduire une voiture (SOLR) et de connaître quelques éléments du moteur (Lucene) au cas où il y aurait un problème dans le moteur de votre voiture.

Bonne route :)

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