Différence entre solr et lucène

163

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

Car ce que j'ai compris jusqu'à maintenant, 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 est-ce une approche totalement différente?

darkheir
la source
5
Ne fonctionne pas lucene.apache.org/solr (et la page équivalente pour Lucene) réponse qui?
NPE
Oui, vous avez raison, la page des fonctionnalités de solr clarifie la différence. Si si je comprends bien, je pourrais utiliser Lucene seul, mais Solr a besoin de Lucene pour travailler.
darkheir
2
Contrairement à Lucene, Solr est une application Web (WAR) qui peut être déployée dans n'importe quel conteneur de servlet, par exemple Jetty, Tomcat, Resin, etc. Solr peut être installé et utilisé par des non-programmeurs. Lucene ne peut pas. Plus d'informations sur lucenetutorial.com/lucene-vs-solr.html
Chanceux

Réponses:

229

@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 Solr.

2) Lucene est un puissant framework de moteur de recherche qui nous permet d'ajouter des fonctionnalités de recherche à notre application. Il expose une API facile à utiliser tout en masquant toutes les opérations complexes liées à la recherche. N'importe quelle application peut utiliser cette bibliothèque, pas seulement Solr.

3) Solr est construit autour de Lucene. Ce n'est pas seulement un http-wrapper autour de Lucene, mais il est connu pour ajouter plus d'arsenal à Lucene . Solr est prêt à l'emploi prêt à l'emploi. C'est une application Web qui offre une infrastructure connexe et beaucoup plus de fonctionnalités en plus de ce que propose 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 est-ce une approche totalement différente?

4) Lucene ne crée pas seulement l'indice de la consommation de Solr . Lucene gère toutes les opérations liées à la recherche. Toute application peut utiliser le framework Lucene.

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

Consultez cet article: Lucene vs Solr

MISE À JOUR (18/06/14)

Quand utiliser Lucene?

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

Quand utiliser Solr?

  • Au moins l'un des éléments ci-dessus n'avait aucun sens. OU
  • Vous voulez quelque chose qui est prêt à l'emploi 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.

REMARQUE : je ne veux pas dire que Solr est difficile à personnaliser. Solr est très flexible et fournit de nombreux points API enfichables, vous permettant d'introduire votre code.

Il y a des gens qui tombent sous le camp du ` ` devoir utiliser Lucene '', mais préfèrent toujours Solr à Lucene simple car il est facile à utiliser. Cependant, ils ne s'interdisent jamais de personnaliser au maximum Solr.

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

phanin
la source
31

Lucene est une bibliothèque Java de bas niveau (avec des ports vers .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 au lieu de l'API Java, Solr est fait pour vous. Solr a également quelques fonctionnalités supplémentaires en plus (par exemple le regroupement ).

mindas
la source
21

Une manière 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 pouvez conduire une voiture. De même, Lucene est une bibliothèque programmatique que vous ne pouvez pas utiliser telle quelle, tandis que Solr est une application complète que vous pouvez utiliser prête à l'emploi.

Source: Lucene-vs-solr - Tutoriel Lucene

Vikas Kumar
la source
5
Qui est copié-collé à partir de lucenetutorial.com/lucene-vs-solr.html Veuillez mentionner la source chaque fois que vous copiez-collez la réponse en citant la source. ;)
Lucky
1
La page semble être hors ligne maintenant.
dev_feed
15

Solr est construit sur lucene pour fournir une plate-forme de recherche.

Plateforme de recherche dans les couches suivantes de bas en haut:

  • Les données
    • Objectif: représenter divers types et sources de données
  • Construction de documents
    • Objectif: créer des informations sur le document pour l'indexation
  • Indexation et recherche
    • Objectif: créer et interroger un index de document
  • Amélioration de la logique
    • Objectif: logique supplémentaire pour le traitement des requêtes et des résultats de recherche
  • Service de plateforme de recherche
    • Objectif: ajouter des fonctionnalités supplémentaires au cœur des moteurs de recherche pour fournir une plate-forme de service.
  • Application UI
    • Objectif: interface ou applications de recherche de l'utilisateur final

pile solr

Article de référence: Recherche d'entreprise

mingxue
la source
12

SOLR est un wrapper sur l'index Lucene.

C'est simple à comprendre: SOLR est une voiture et Lucène est son moteur . Vous avez juste besoin de savoir conduire une voiture (SOLR) et également de connaître peu de choses sur le moteur (Lucene) au cas où il y aurait un problème dans le moteur de votre voiture.

Conduisez prudemment :)

Behzad Qureshi
la source
3
Sans oublier que si vous étiez si enclin, vous pourriez construire votre propre voiture en utilisant le moteur Lucene.
indices
1

Vous pouvez l'imaginer de la manière suivante - Apache Lucene est la bibliothèque qui est utilisée en interne par Apache Solr. Il est écrit en Java et offre d'incroyables capacités de recherche et d'indexation en texte intégral. Il peut analyser un grand nombre de langues du monde entier et préparer le texte dans ces langues pour une recherche et une analyse efficaces et rapides. Lucene est une bibliothèque - vous pouvez l'utiliser directement dans votre application et tout implémenter vous-même, mais Apache Solr fournit beaucoup de choses hors de la boîte.

Le moteur de recherche Apache Solr fournit des éléments tels que les API HTTP que vous pouvez utiliser pour leur envoyer des données et les rechercher ultérieurement. Vous pouvez contrôler les moteurs de recherche à l'aide de l'API, créer des environnements distribués et distribuer automatiquement les données sur plusieurs nœuds et bien d'autres.

Rafal
la source