Apache Solr-Tutorial: Was ist Solr? Architektur
⚡ Intelligente Zusammenfassung
Apache Solr ist Open Source, Java-basierter Suchserver, der auf Apache Lucene aufbaut. Er indexiert große Mengen textzentrierter Daten und liefert relevante Ergebnisse über REST-APIs. Er bietet Volltextsuche, Facettensuche, Skalierbarkeit sowie Standalone- und SolrCloud-Bereitstellungsmodi.
Was ist Apache Solr?
Apache Solr ist eine Open-Source-Suchserver-Plattform, geschrieben in Java Sprache der Apache Software Foundation. Sie ist hochgradig skalierbar und bereit, Suchmaschinen bereitzustellen, um große Mengen textzentrierter Daten zu verarbeiten. Der Zweck der Verwendung von Apache Solr besteht darin, große Mengen von Webinhalten zu indizieren und zu durchsuchen und relevante Inhalte basierend auf Suchanfragen bereitzustellen.
Apache Solr ist ein REST-API-basierter HTTP-Wrapper für die Volltextsuchmaschine Apache Lucene. Ein invertierter Index ist eine Liste von Wörtern, wobei jeder Worteintrag auf die Dokumente verweist, in denen er gespeichert ist. Auf diese Weise können alle Dokumente für die Suchanfrage „guru99“ mit einer einfachen „Get“-Operation abgerufen werden.
Geschichte von Apache Solr
- 1999: Doug Cutting veröffentlicht Lucene
- 2004: Solr wurde bei CNET von Yonik Seeley als firmeninternes Projekt entwickelt
- 2006: CNET veröffentlicht den Quellcode, indem es ihn an die Apache-Software spendet Foundation
- 2008: Solr 1.3 wurde mit erweiterten Suchfunktionen und Leistungsverbesserungen veröffentlicht
- 2010: Fusion von Lucene und Solr
- 2012: Solr Version 4.0 wurde mit der neuen Solr Cloud-Funktion veröffentlicht
- 2016: Solr 6.0 wurde veröffentlicht und bietet Unterstützung für die Ausführung paralleler SQL-Abfragen
- 2017: Solr 7.0 wurde veröffentlicht und fügte ein Autoscaling-Framework sowie die JSON Facet API hinzu.
- 2019: Solr 8.0 wurde mit Unterstützung für verschachtelte Dokumente und verbesserten Streaming-Ausdrücken veröffentlicht.
- 2021: Lucene und Solr trennten sich erneut, und Solr wurde ein eigenständiges Apache-Top-Level-Projekt.
- 2022: Solr 9.0 wurde als erste von Lucene unabhängige Version veröffentlicht und bot Vektorsuche sowie Kubernetes-Unterstützung.
- 2026: Solr 10.0 wurde als neueste Hauptversion veröffentlicht.
Funktionen von Apache Solr
Hier sind wichtige Funktionen von Apache Solr:
- Automatischer Lastausgleich
- Auf Standards basierende offene Schnittstellen – XML, JSON und HTTP
- Empfehlungen und Zaubervorschläge werden unterstützt
- Unterstützung für automatische Vervollständigung und geografische Suche
- Integrierte Sicherheit für Authentifizierung und Autorisierung
- Ermöglicht die Durchführung einer mehrsprachigen Stichwortsuche
- Autovervollständigung/Typ-Ahead-Vorhersage
- Stapel- und Streaming-Verarbeitung
- Die Erstellung von Modellen für maschinelles Lernen ist einfach
- Speziell optimiert für hohen Web-Traffic
- Umfassende HTML-Admiration-Schnittstellen
- Unterstützt sowohl die Schema- als auch die schemalose Konfiguration
- Facettierte Suche und Filterung
- Zentrale Konfiguration für das Ganze Cluster
Schlüsselbegriffe, die in Apache Solr verwendet werden
In diesem Solr-Suchmaschinen-Tutorial lernen wir nun die Schlüsselbegriffe kennen, die in Apache Solr verwendet werden:
| Schlüsselbegriff | Beschreibung |
|---|---|
| Solr-Kern | Solr Core kann als Index von Texten und Feldern definiert werden, der aus allen Dokumenten abgeleitet wird. Eine Solr-Instanz kann einen oder mehrere Solr Cores enthalten. Core = eine Instanz von Lucene Index + Solr-Konfiguration |
| Solr-Instanz | Solr-Instanz ist eine Solr-Instanz, die im Java Virtuelle Maschine (JVM). Im Standalone-Modus bietet es nur eine Instanz, während Sie im Cloud-Modus eine oder mehrere Instanzen haben können. |
| Indizierung | Die Indizierung ist eine Methode zum Hinzufügen von Dokumentinhalten zum Solr-Index. Apache Solr verwendet die Apache Lucene Inverted Index-Technik. |
| DokumentAAA | Es handelt sich um eine Gruppe von Feldern und ihren Werten. Ein Dokument ist eine grundlegende Dateneinheit, die in Apache Core gespeichert ist. Ein Apache-Kern kann ein oder mehrere Dokumente enthalten. |
| Feld | Ein Feld ist ein Schlüssel-Wert-Paar, das die eigentlichen Daten eines Dokuments speichert. Der Schlüssel gibt den Feldnamen an, der Wert enthält die Daten dieses Feldes. Ein Dokument kann ein oder mehrere Felder enthalten. Apache Solr verwendet Felder zur Indizierung des Dokumentinhalts. |
| Erholsame APIs | Für die Kommunikation mit Solr ist es nicht notwendig, Java Programmierung. Stattdessen bietet Apache Solr erholsame Dienstleistungen damit zu kommunizieren. Sie können Dokumente senden und Ergebnisse in verschiedenen Dateiformaten wie JSON, XML und CSV empfangen. |
| Volltextsuche | Solr bietet Funktionen für die Volltextsuche wie Token, Phrasen, Rechtschreibprüfung, automatische Vervollständigung, Platzhalter usw. |
| Admin-Oberfläche | Solr bietet eine benutzerfreundliche, funktionsgestützte Benutzeroberfläche. Über die Schnittstelle können Sie Aufgaben wie die Verwaltung von Protokollen sowie das Hinzufügen, Löschen, Aktualisieren und Durchsuchen von Dokumenten ausführen. |
| Textzentriert und nach Relevanz sortiert | Apache Solr wird zum Durchsuchen von Textdokumenten verwendet und die Ergebnisse werden entsprechend der Anfrage des Benutzers geliefert. |
| Knoten | In der Solr-Cloud wird jede einzelne Instanz als Knoten bezeichnet. |
| Cluster | Ein Cluster ist eine Sammlung von Knoten. |
| Kollektion | Ein Cluster hat einen logischen Index, der auch Sammlung genannt wird. |
| Scherbe | Es handelt sich um einen kleinen Bereich der Sammlung, der einzelne oder mehrere Replikate des Index bietet. |
| Replik | Ein Replikat ist eine Kopie eines Shards, der in einem Knoten ausgeführt wird. |
| Führungskräfte | Es handelt sich um eine Replik des Shards, der die Anfragen der Solr Cloud für die restlichen Replikate sendet. |
Apache Solr Architektur
In diesem Tutorial zur Solr-Suche lernen wir nun etwas über Apache Solr ArchiStruktur:

Apache Solr kompromittiert folgende Komponenten
Abfrage
Der Query-Parser analysiert die an Solr zu übergebenden Abfragen. Er überprüft die Abfrage auf Syntaxfehler. Anschließend werden die Abfragen in ein von Lucene unterstütztes Format übersetzt.
Anforderungshandler
Die an Apache Solr gesendeten Anfragen werden vom Anfragehandler verarbeitet. Es kann sich dabei um Abfrage- oder Indexaktualisierungsanfragen handeln. Sie müssen den Anfragehandler entsprechend Ihren Anforderungen auswählen. Um eine Anfrage an Solr zu senden, müssen Sie den Handler einem bestimmten Parameter zuordnen. URL Endpunkt.
Antwort Writer
Ein Antwortschreiber generiert formatierte Ausgaben für Eingabeabfragen. Es unterstützt verschiedene Formate wie XML, JSON, CSV usw. Möglicherweise verfügen Sie über unterschiedliche Antwortschreiber für unterschiedliche Arten von Anfragen.
Update-Handler
Wenn Sie eine Aktualisierungsanfrage an Apache Solr senden, durchläuft diese verschiedene Prozesse wie Plugins, Signatur, Protokollierung und Indizierung. Dieser Vorgang wird als Aktualisierungsanfrageprozessor bezeichnet. Der Aktualisierungshandler ist auch für Änderungen wie das Hinzufügen oder Entfernen von Elementen zuständig.ping eingereicht usw.
Apache Solr-Anwendungen
| Anwendung | Anwendungsbereich |
|---|---|
| Intranet-Portal |
|
| Föderierter Client |
|
| Instrumentendatensätze |
|
| Zulassungsdokumente |
|
| Eingebettet in die PLM-Anwendung |
|
Wie installiere ich Apache Solr?
Schritt 1) Öffnen Sie die Website und fahren Sie mit dem Abonnieren fort
Gehe dahin Link, Klicken Sie auf „Weiter zum Abonnieren“.
Schritt 2) Klicken Sie auf Bedingungen akzeptieren
Klicken Sie auf der nächsten Seite auf „Bedingungen akzeptieren“.
Schritt 3) Warte eine Zeit lang
Als nächstes warten Sie einige Zeit und dann wird die Anfrage nach einiger Zeit angenommen.
Schritt 4) Weiter zur Konfiguration
Aktualisieren Sie die Seite und klicken Sie auf „Weiter zur Konfiguration“.
Schritt 5) Fahren Sie mit dem Start fort
Behalten Sie die Standardeinstellungen bei und klicken Sie auf „Weiter zum Starten“.
Schritt 6) Behalten Sie die Standardeinstellungen bei
Behalten Sie auf der nächsten Seite die Standardeinstellungen bei
- Stellen Sie sicher, dass Sie über die PEM-Datei des Schlüssels verfügen
- Klicken Sie auf „Starten“
Sie sehen diese Erfolgsmeldung
Schritt 7) Beachten Sie das öffentliche DNS
Notieren Sie sich in der EC2-Konsole den öffentlichen DNS Ihrer Instanz
Schritt 8) Unten öffnen URL
Um auf Solr zuzugreifen, verwenden Sie einfach die URL
http://publicdns:8983
in unserem Fall wird es
http://ec2-18-221-175-53.us-east-2.compute.amazonaws.com:8983
Hinweis: Wenn Sie Probleme beim Zugriff auf die Instanz haben, ändern Sie die eingehenden und ausgehenden Regeln in Ihrer Instanz, um den gesamten Datenverkehr zuzulassen, wie im folgenden Solr-Abfragebeispiel gezeigt:
Elasticsearch vs. Apache Solr
| Kenngrößen | Apache Solr | Elastische Suche |
|---|---|---|
| Natur | Es ist ein Open-Source-Projekt. | Kein Open-Source-Projekt. |
| Statischer Status | Statisch in shema.xml | Statisch in elasticsearch.yml |
| Format | XML, CSV, JSON | Nur JSON |
| Index | Kann während der Laufzeit mit Collection/Core Reload neu geladen werden | Wird während der Index-/Typerstellung mit einem REST-Aufruf definiert |
| Dokumentation | Es ist gut dokumentiert. | Es ist schlecht dokumentiert. |
| Splitter spalten | Möglich | Nicht möglich |
Vorteile von Apache Solr
- Hilft Ihnen, die Zeit zu verkürzen, die zum Auffinden von Informationen benötigt wird
- Es ist eine schnelle, einfache, leistungsstarke und flexible Suchmaschine.
- Hilft Ihnen, Ihre Produkte und Dienstleistungen zugänglicher zu machen
- Erhöhen Sie die Ausgaben Ihrer Kunden für eine Webanwendung
- Hilft Ihnen, die Benutzererfahrung der Webanwendung zu verbessern, um Umsatz und Gewinn zu steigern
- Umfassende HTML-basierte Verwaltungsoberfläche
- Flexibel und anpassbar mit XML-Konfiguration
- Erweiterbares Plugin Architektur
- Hochskalierbare, robuste und fehlertolerante Suchmaschine
- Unterstützt verteilt, Shading, Replikation, Clustering und Multi-Node Architektur
Nachteile von Apache Solr
- Es handelt sich nicht um einen ACID-kompatiblen Datenspeicher
- Als primärer Datenspeicher ist es nicht sinnvoll. Nur als sekundärer Datenspeicher nützlich
- Bietet keine Unterstützung für Transaktionen und verteilte Transaktionen
- Keine Unterstützung für Joins und komplexe Abfragen
- Nicht optimal für normalisierte Daten











