Teil 1: Einrichten eines einzelnen Knotens
Heute ist es schnell und einfach, Ihre Dokumente oder Daten elektronisch auf einem Speichergerät zu speichern. Es ist auch vergleichsweise billig. Im Gebrauch ist eine Dateiname -Referenz, die beschreiben soll, worum es im Dokument geht. Alternativ werden Daten in einem Datenbankverwaltungssystem (DBMS) wie PostgreSQL, Mariadb oder MongoDB aufbewahrt, um nur einige Optionen zu benennen. Mehrere Speichermedien sind entweder lokal oder remote mit dem Computer verbunden, z.
Im Gegensatz dazu ist der umgekehrte Prozess, die richtigen Dokumente in einer Dokumentsammlung zu finden, ziemlich komplex. Es muss hauptsächlich das Dateiformat erkennen, das Dokument indizieren und die Schlüsselkonzepte extrahieren (Dokumentklassifizierung). Hier kommt das Apache -Solr -Framework ins Spiel. Es bietet eine praktische Schnittstelle für die genannten Schritte - Erstellen eines Dokumentindex, die Annahme von Suchanfragen, die tatsächliche Suche und Rückgabe eines Suchergebnisses. Apache Solr bildet somit den Kern für eine effektive Forschung in einer Datenbank oder zum Dokument -Silo.
In diesem Artikel erfahren Sie, wie Apache Solr funktioniert, wie Sie einen einzelnen Knoten einrichten, Indexdokumente durchführen, eine Suche durchführen und das Ergebnis abrufen.
Die Follow-up-Artikel bauen auf diesem auf und diskutieren in ihnen andere spezifischere Anwendungsfälle wie die Integration eines PostgreSQL-DBMS als Datenquelle oder Lastausgleich über mehrere Knoten.
Über das Apache Solr -Projekt
Apache Solr ist ein Suchmaschinen -Framework, das auf dem leistungsstarken Lucene Search Index Server basiert [2]. In Java geschrieben, wird es unter dem Dach der Apache Software Foundation (ASF) aufrechterhalten [6]. Es ist unter der Apache 2 -Lizenz frei verfügbar.
Das Thema „Wieder finden Dokumente und Daten wieder“ spielt in der Software -Welt eine sehr wichtige Rolle, und viele Entwickler beschäftigen sich intensiv damit. Die Website AwesomeOpenSource [4] listet mehr als 150 Open-Source-Projekte auf Suchmaschinen auf. Anfang 2021 sind Elasticsearch [8] und Apache Solr/Lucene die beiden Top -Hunde bei der Suche nach größeren Datensätzen. Die Entwicklung Ihrer Suchmaschine erfordert viel Wissen. Frank macht dies mit der Python-basierten Advas Advanced Search [3] -Bibliothek seit 2002.
Einrichten von Apache Solr:
Die Installation und der Betrieb von Apache Solr sind nicht kompliziert. Es handelt sich einfach um eine ganze Reihe von Schritten, die von Ihnen durchgeführt werden müssen. Erlauben Sie ungefähr 1 Stunde für das Ergebnis der ersten Datenabfrage. Darüber hinaus ist Apache Solr nicht nur ein Hobbyprojekt, sondern wird auch in einer professionellen Umgebung verwendet. Daher ist die ausgewählte Betriebssystemumgebung für den langfristigen Gebrauch ausgelegt.
Als Basisumgebung für diesen Artikel verwenden wir Debian GNU/Linux 11, die bevorstehende Debian-Veröffentlichung (Anfang 2021) und voraussichtlich Mitte 2021 erhältlich sein wird. Für dieses Tutorial erwarten wir, dass Sie es bereits als natives System in einer virtuellen Maschine wie VirtualBox oder einem AWS-Container installiert haben.
Abgesehen von den grundlegenden Komponenten müssen die folgenden Softwarepakete auf dem System installiert werden:
Diese Pakete sind Standardkomponenten von Debian GNU/Linux. Wenn Sie noch nicht installiert sind, können Sie sie als Benutzer mit administrativen Rechten nach dem Installieren von Stamm oder über Sudo nach dem Installieren wie folgt nachbauen: wie folgt:
# APT-Get Install Curl Standard-Java libcommons-cli-java libxerces2-java libtika-java
Nachdem die Umgebung erstellt wurde, ist der zweite Schritt die Installation von Apache Solr. Ab sofort ist Apache Solr nicht als reguläres Debian -Paket verfügbar. Daher ist es erforderlich, Apache Solr 8 abzurufen.8 Aus dem Download -Abschnitt der Projektwebsite [9] zuerst aus dem Download -Abschnitt. Verwenden Sie den folgenden WGet -Befehl, um ihn im Verzeichnis /TMP Ihres Systems zu speichern:
$ wget -o/tmp https: // downloads.Apache.org/lucene/Solr/8.8.0/Solr-8.8.0.TGZ
Der Switch -o verkürzt das Ausgabe -Dokument und leitet WGet den abgerufenen Teer auf.GZ -Datei im angegebenen Verzeichnis. Das Archiv hat eine Größe von ungefähr 190 m. Packen Sie das Archiv als nächstes mit TAR in das /opt -Verzeichnis aus. Infolgedessen finden Sie zwei Unterverzeichnisse - /opt /Solr und /opt /Solr -8.8.0, während /opt /Solr als symbolische Verbindung zum letzteren eingerichtet wird. Apache Solr verfügt über ein Setup -Skript, das Sie als nächstes ausführen. Es folgt wie folgt:
# /opt /Solr-8.8.0/bin/install_solr_service.Sch
Dies führt zur Erstellung der Linux -Benutzer -Solr -Ausführungen im Solr -Dienst sowie seines Home -Verzeichnisse. Dies sind die Standardwerte. Wenn Sie mit ihnen unzufrieden sind, können Sie sie während der Installation ändern oder sogar Latarsce Das Installationsskript akzeptiert entsprechende Schalter für Einrichtungsanpassungen. Wir empfehlen Ihnen, sich die Apache -Solr -Dokumentation zu diesen Parametern anzusehen.
Die Solr -Software ist in den folgenden Verzeichnissen organisiert:
Ausführlicher, können Sie diese Verzeichnisse in der Apache -Solr -Dokumentation lesen [12].
Verwalten von Apache Solr:
Apache Solr wird als Dienst im Hintergrund ausgeführt. Sie können es auf zwei Arten starten, entweder mit SystemCTL (erste Zeile) als Benutzer mit administrativen Berechtigungen oder direkt aus dem Solr -Verzeichnis (zweite Zeile). Wir listen beide Terminalbefehle unten auf:
# Systemctl Start Solr
$ Solr/bin/Solr -Start
Das Stoppen von Apache -Solr wird ähnlich durchgeführt:
# Systemctl Stopp Solr
$ Solr/bin/Solr Stop
Auf die gleiche Art und Weise starten Sie den Apache -Solr -Dienst neu:
# Systemctl Neustart solr
$ solr/bin/solr neu starten
Darüber hinaus kann der Status des Apache -Solr -Prozesses wie folgt angezeigt werden:
# Systemctl Status Solr
$ Solr/bin/Solr -Status
Die Ausgabe listet die gestartete Dienstdatei auf, sowohl den entsprechenden Zeitstempel- als auch die Protokollnachrichten. Die folgende Abbildung zeigt, dass der Apache -Solr -Dienst auf Port 8983 mit Prozess 632 gestartet wurde. Der Prozess läuft erfolgreich für 38 Minuten.
Um festzustellen, ob der Apache-Solr-Prozess aktiv ist, können Sie auch den Befehl ps in Kombination mit Grep überprüft. Dies beschränkt die PS -Ausgabe auf alle Apache -Solr -Prozesse, die derzeit aktiv sind.
# PS AX | Grep -Color Solr
Die folgende Abbildung zeigt dies für einen einzelnen Prozess. Sie sehen den Anruf von Java, der von einer Liste von Parametern begleitet wird, z.
Benutzer hinzufügen:
Die Apache -Solr -Prozesse werden mit einem bestimmten Benutzer mit dem Namen Solr ausgeführt. Dieser Benutzer ist hilfreich bei der Verwaltung von Solr -Prozessen, dem Hochladen von Daten und dem Senden von Anfragen. Bei der Einrichtung hat der Benutzer -Solr kein Passwort und es wird erwartet, dass sie sich anmelden, um weiter fortzufahren. Legen Sie ein Kennwort für das Benutzer -Solr -wie -Benutzer -Root fest. Es wird wie folgt angezeigt:
# Passwd Solr
Solr -Verwaltung:
Das Verwalten von Apache Solr wird mit dem Solr -Dashboard durchgeführt. Dies ist über den Webbrowser von http: // localhost: 8983/Solr zugänglich. Die folgende Abbildung zeigt die Hauptansicht.
Links sehen Sie das Hauptmenü, das Sie zu den Unterabschnitten für die Protokollierung, die Verwaltung der Solr -Kerne, das Java -Setup und die Statusinformationen führt. Wählen Sie den gewünschten Kern mit dem Auswahlfeld unterhalb des Menüs. Auf der rechten Seite des Menüs werden die entsprechenden Informationen angezeigt. Der Dashboard -Menüeintrag zeigt weitere Details zum Apache -Solr -Prozess sowie die aktuelle Last- und Speicherverwendung angezeigt.
Bitte wissen Sie, dass sich der Inhalt des Dashboards abhängig von der Anzahl der Solr -Kerne und den indizierten Dokumenten ändert. Änderungen wirken sich sowohl auf die Menüelemente als auch die entsprechenden Informationen aus, die rechts sichtbar sind.
Verstehen, wie Suchmaschinen funktionieren:
Suchmaschinen analysieren Dokumente, kategorisieren und ermöglichen es Ihnen, eine Suche auf der Grundlage ihrer Kategorisierung durchzuführen. Grundsätzlich besteht der Prozess aus drei Stufen, die als Krabbeln, Indexierung und Ranking bezeichnet werden [13].
Krabbeln ist die erste Phase und beschreibt einen Prozess, durch den neue und aktualisierte Inhalte erfasst werden. Die Suchmaschine verwendet Roboter, die auch als Spinnen oder Crawler bezeichnet werden. Daher kriechend der Begriff, die verfügbaren Dokumente durchlaufen.
Die zweite Stufe heißt Indizierung. Der zuvor gesammelte Inhalt wird durchsucht, indem die ursprünglichen Dokumente in ein Format umgewandelt werden, das die Suchmaschine versteht. Schlüsselwörter und Konzepte werden in (massiven) Datenbanken extrahiert und gespeichert.
Die dritte Stufe heißt Rangfolge und beschreibt den Prozess der Sortierung der Suchergebnisse nach ihrer Relevanz mit einer Suchabfrage. Es ist üblich, die Ergebnisse in absteigender Reihenfolge anzuzeigen, damit das Ergebnis, das die höchste Relevanz für die Abfrage des Suchenden hat.
Apache Solr funktioniert ähnlich wie der zuvor beschriebene dreistufige Prozess. Wie die beliebte Suchmaschine Google verwendet Apache Solr eine Folge von Dokumenten für Sammeln, Speichern und Indizieren aus verschiedenen Quellen und macht sie in naher Echtzeit verfügbar/durchsuchbar.
Apache Solr verwendet verschiedene Möglichkeiten, Dokumente einschließlich der folgenden [14] zu indizieren:
Ein Abfragebehandler wird in Apache Solr verwendet, wenn eine Suchanforderung gesendet wird. Der Abfragehandler analysiert die angegebene Abfrage basierend auf demselben Konzept des Indexhandlers, um die Abfrage und die zuvor indizierten Dokumente zu entsprechen. Die Übereinstimmungen werden nach ihrer Angemessenheit oder Relevanz bewertet. Ein kurzes Beispiel für die Abfrage wird unten gezeigt.
Hochladen von Dokumenten:
Aus dem Einfachheit halber verwenden wir einen Beispieldatensatz für das folgende Beispiel, das bereits von Apache Solr bereitgestellt wird. Das Hochladen von Dokumenten wird als Benutzer -Solr durchgeführt. Schritt 1 ist die Erstellung eines Kerns mit dem Namen TechProducts (für eine Reihe von Tech -Elementen).
$ Solr/bin/Solr erstellen -c -Techprodukte
Alles ist in Ordnung, wenn Sie die Meldung „neue Kern -Techprodukte erstellt“ sehen,. In Schritt 2 werden Daten zu den zuvor erstellten Kerntechnikprodukten hinzugefügt. In Verwendung ist der Toolpost, der durch -c (Name des Kerns) und die zu hochgeladenen Dokumente parametrisiert wird.
$ solr/bin/post -c techproducts solr/example/eviclepedocs/*.xml
Dies führt zu der nachstehend gezeigten Ausgabe und enthält den gesamten Anruf plus die 14 indexierten Dokumente.
Auch das Dashboard zeigt die Änderungen an. Ein neuer Eintrag mit dem Namen TechProducts ist im Dropdown -Menü auf der linken Seite sichtbar und die Anzahl der entsprechenden Dokumente auf der rechten Seite geändert. Leider ist eine detaillierte Ansicht der Rohdatensätze nicht möglich.
Wenn der Kern/die Sammlung entfernt werden muss, verwenden Sie den folgenden Befehl:
$ solr/bin/solr delete -c techproducts
Abfragedaten:
Apache Solr bietet zwei Schnittstellen zum Abfragen von Daten: über das webbasierte Dashboard und die Befehlszeile. Wir werden beide Methoden unten erklären.
Das Senden von Abfragen über Solr Dashboard erfolgt wie folgt:
Die Befehlszeile akzeptiert die gleiche Abfrage wie im Dashboard. Der Unterschied besteht darin, dass Sie den Namen der Abfragebelder kennen müssen. Um dieselbe Abfrage wie oben zu senden, müssen Sie den folgenden Befehl in einem Terminal ausführen:
$ curl
http: // localhost: 8983/solr/techproducts/query?Q = "Manu": "Belkin
Die Ausgabe ist im JSON -Format, wie unten gezeigt. Das Ergebnis besteht aus einem Antwortheader und der tatsächlichen Reaktion. Die Antwort besteht aus zwei Datensätzen.
Aufpackung:
Glückwunsch! Sie haben die erste Stufe mit Erfolg erreicht. Die grundlegende Infrastruktur ist eingerichtet, und Sie haben gelernt, wie man Dokumente hochladen und abfragt.
Im nächsten Schritt werden die Abfrage verfeinert, komplexere Abfragen formuliert und die verschiedenen Webformen verstanden, die von der Apache Solr -Abfrageseite bereitgestellt werden. Außerdem werden wir diskutieren, wie das Suchergebnis mit verschiedenen Ausgabeformaten wie XML, CSV und JSON verarbeitet werden kann.
Über die Autoren:
Jacqui Kabeta ist Umweltschützer, begeisterter Forscher, Trainer und Mentor. In mehreren afrikanischen Ländern hat sie in der IT -Branche und in der NGO -Umgebung gearbeitet.
Frank Hofmann ist IT -Entwickler, Trainer und Autor und arbeitet lieber aus Berlin, Genf und Kapstadt. Co-Autor des Debian-Paket-Management-Buches bei DPMB erhältlich.Org