Apache Solr-Tutorial: Was ist Solr? ArchiStruktur und Installation
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
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, die aus allen Dokumenten abgeleitet werden. Eine Solr-Instanz kann einen oder mehrere Solr-Kerne haben.
Core = eine Instanz der 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. |
Dokument | 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 | Das Feld ist ein Schlüssel-Wert-Paar, das die tatsächlichen Daten in einem Dokument speichert. Der Schlüssel gibt den Feldnamen an und der Wert enthält die Felddaten. Ein Dokument kann ein oder mehrere Felder haben. Es wird von Apache Solr verwendet, um den Dokumentinhalt zu indizieren. |
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. |
Datenerfassung | 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 Abfrageparser analysiert die Abfragen, die Sie an Solr übergeben müssen. Es überprüft Ihre Abfrage, um syntaktische Fehler zu überprüfen. Nach dem Parsen der Abfragen wird es in ein Format übersetzt, das Lucene kennt.
Anforderungshandler
Die an Apache Solr gesendeten Anforderungen werden vom Anforderungshandler verarbeitet. Bei der Anfrage kann es sich um eine Abfrageanfrage oder eine Indexaktualisierungsanfrage handeln. Sie müssen den Anforderungshandler entsprechend Ihren Anforderungen auswählen. Um eine Anfrage an Solr weiterzuleiten, müssen Sie den Handler einem bestimmten URL-Endpunkt zuordnen.
Antwortschreiber
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 Aktualisierungsanforderung an Apache Solr senden, durchläuft diese eine Reihe von Plugins, Signaturen, Protokollierung und Indizierung. Dieser Vorgang wird als Update-Request-Prozessor bezeichnet. Der Update-Handler ist auch für Änderungen wie das Hinzufügen oder Löschen von Dateien usw. verantwortlich.
Apache Solr-Anwendungen
Anwendungs- | 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) Öffnen Sie die folgende 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
Parameter | 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
Zusammenfassung
- Apache Solr ist eine Open-Source-Lösung REST-API basierte Suchserver
- Apache Solr wurde bei CNET von Yonik Seeley als teilweise unternehmensinternes Projekt entwickelt
- Apache Solr bietet Funktionen wie automatische Vervollständigung und geografische Suche
- Solr Core, Solr Instance, Indexing, Document, Restful APIs, Volltextsuche, Admin Interface usw. sind einige Schlüsselbegriffe, die in Apache Solr verwendet werden
- Abfrage-, Request-Handler, Request-Writer und Update-Handler sind einige der wichtigen Komponenten von Apache Solr
- Intranet-Portal, Federated Client, Instrumentendatensätze, behördliche Dokumente und eingebettet in PLM-Anwendungen sind nützliche Apache Solr-Anwendungen
- Apache Solr ist gut dokumentiert, im Vergleich zur schlecht dokumentierten Elastic Search
- Der größte Vorteil von Apache Solr besteht darin, dass es Ihnen hilft, den Zeitaufwand für die Suche nach Informationen zu reduzieren
- Der Hauptnachteil dieser Anwendung ist, dass es sich nicht um einen ACID-kompatiblen Datenspeicher handelt