it-swarm.com.de

Unterschied zwischen Solr und Lucene

Ich weiß, dass Lucene und Solr zwei Unterschiede sind Apache-Projekte , die zusammenarbeiten sollen, aber ich verstehe nicht, was das Ziel jedes Projekts ist.

Was ich bis jetzt verstanden habe, ist, dass Lucene verwendet wird, um einen Suchindex zu erstellen, und Solr diesen Index verwendet, um Suchvorgänge durchzuführen. Habe ich recht oder ist das ein ganz anderer Ansatz?

151
darkheir

@ darkheir: Lucene und Solr sind zwei verschiedene Apache-Projekte, die zusammenarbeiten. Ich verstehe nicht, was das Ziel jedes Projekts ist.

1) Solr benutzt Lucene unter der Haube. Lucene hat keine Ahnung von der Solr-API.

2) Lucene ist ein leistungsstarkes Suchmaschinen-Framework, mit dem wir unserer Anwendung Suchfunktionen hinzufügen können. Es stellt eine benutzerfreundliche API bereit, während alle suchbezogenen komplexen Vorgänge ausgeblendet werden. Jede Anwendung kann diese Bibliothek verwenden, nicht nur Solr.

3) Solr ist um Lucene gebaut. Es ist nicht nur ein http-Wrapper um Lucene, sondern es ist bekannt, dass Lucene mehr Arsenal hinzufügt . Solr ist gebrauchsfertig. Es handelt sich um eine Webanwendung, die neben der von Lucene angebotenen Infrastruktur viele weitere Funktionen bietet.

@ darkheir: Lucene wird verwendet, um einen Suchindex zu erstellen, und Solr verwendet diesen Index, um Suchvorgänge durchzuführen. Habe ich recht oder ist das ein ganz anderer Ansatz?

4) Lucene erstellt nicht nur den Index für den Verbrauch durch Solr . Lucene kümmert sich um alle Suchvorgänge. Jede Anwendung kann das Lucene-Framework verwenden.

Beispiele sind Solr, Elastic Search, LinkedIn (ja, unter der Haube) usw.

Schauen Sie sich diesen Artikel an: Lucene vs Solr

UPDATE (18.06.14)

Wann ist Lucene anzuwenden?

  • Sie sind ein Suchingenieur UND
  • Sie sind Programmierer UND
  • Sie möchten die volle Kontrolle über fast alle Interna von Lucene AND haben
  • Ihre Anforderungen verlangen, dass Sie alle Arten von geeky Anpassungen an Lucene AND vornehmen
  • Sie sind bereit, sich um die Infrastrukturelemente Ihrer Suche wie Skalierung, Verteilung usw. zu kümmern.

Wann ist Solr anzuwenden?

  • Zumindest eine der obigen Aussagen ergab keinen Sinn. ODER
  • Sie möchten etwas, das sofort einsatzbereit ist (auch ohne Java-Kenntnisse), ODER
  • Ihre Infrastrukturanforderungen überwiegen die Suchanpassungsanforderungen.

[~ # ~] Anmerkung [~ # ~] : Ich meine nicht, dass Solr schwer anzupassen ist. Solr ist sehr flexibel und bietet viele steckbare API-Punkte, mit denen Sie Ihren Code eingeben können.

Es gibt Leute, die unter ' müssen Lucene ' campen, bevorzugen aber immer noch Solr gegenüber Lucene, da es einfach zu benutzen ist. Sie beschränken sich jedoch nie darauf, Solr maximal anzupassen.

Übrigens sehe ich, dass es auf Solr (4.x) mehr Ressourcen gibt als auf Lucene (4.x).

219
phani

Lucene ist eine Low-Level Java Bibliothek (mit Ports zu .NET usw.), die Indizierung, Analyse, Suche usw. implementiert.

Solr ist eine eigenständige vorkonfigurierte Produkt-/Web-App, die Lucene verwendet. Wenn Sie sich lieber mit der HTTP-API als mit der Java API) beschäftigen, ist Solr genau das Richtige für Sie. Solr bietet darüber hinaus einige zusätzliche Funktionen (z. B. Gruppierung ).

28
mindas

Eine einfache Möglichkeit, die Beziehung zwischen Solr und Lucene zu erfassen, ist die eines Autos und seines Motors. Sie können keinen Motor fahren, aber Sie können ein Auto fahren. Ebenso ist Lucene eine Programmbibliothek, die Sie nicht verwenden können, während Solr eine vollständige Anwendung ist, die Sie sofort verwenden können.

Quelle: Lucene-vs-solr - Lucene Tutorial

20
Vikas Kumar

SOLR ist ein Wrapper über Lucene-Index.

Es ist einfach zu verstehen: SOLR ist Auto und Lucene ist Motor. Sie müssen nur wissen, wie man Auto fährt (SOLR) und müssen auch ein paar Dinge über Motor wissen (Lucene), falls es ein Problem mit Ihrem Automotor geben sollte.

Gute Fahrt :)

9
Behzad Qureshi

Solr basiert auf Lucene, um eine Suchplattform bereitzustellen.

Durchsuchen Sie die Plattform in den folgenden Ebenen von unten nach oben:

  • Daten
    • Zweck: Darstellung verschiedener Datentypen und -quellen
  • Dokumenterstellung
    • Zweck: Dokumentinformationen für die Indizierung erstellen
  • Indizierung und Suche
    • Zweck: Dokumentindex erstellen und abfragen
  • Logikverbesserung
    • Zweck: Zusätzliche Logik zur Verarbeitung von Suchanfragen und Ergebnissen
  • Suchplattformdienst
    • Zweck: Fügen Sie zusätzliche Funktionen des Suchmaschinenkerns hinzu, um eine Serviceplattform bereitzustellen.
  • UI-Anwendung
    • Zweck: Endbenutzersuchoberfläche oder -anwendungen

solr stack

Referenzartikel: nternehmenssuche

9
mingxue

Einen guten Vergleich über den Sinn von Licht und Sonne finden Sie hier:

http://www.lucenetutorial.com/lucene-vs-solr.html

TLDR: Lucence ist nur der Motor, Solar ist das Auto, das man fahren kann (ausgestattet mit Rest-API usw.)

0
Martin Abraham