Einführung in Apache Solr. Teil 3 eine Verbindung zu Postgresql herstellen

Einführung in Apache Solr. Teil 3 eine Verbindung zu Postgresql herstellen
Apache Solr [1] ist ein in Java geschriebenes Suchmaschinen -Framework und basiert auf der Lucene -Suchbibliothek [6]. In den beiden vorherigen Artikeln haben wir Apache SolR auf dem bald veröffentlichten Debian GNU/Linux 11 eingerichtet, einen einzelnen Datenkern initiiert, Beispieldaten hochgeladen, zeigten, wie die Ausgabedaten auf unterschiedliche Weise abfragen und nach dem Prozess abfragen Es.

Dies ist ein Follow-up-Artikel zu den beiden vorherigen [2,3]. Bisher haben wir indizierte Daten in den Apache -Solr -Speicher geladen und Daten dazu abgefragt. Jetzt erfahren Sie, wie Sie das relationale Datenbankverwaltungssystem PostgreSQL [4] an Apache Solr anschließen und mithilfe der Funktionen von Solr eine Suche durchführen können. Dies macht es notwendig, einige nachstehend beschriebene Schritte ausführlicher auszuführen - das Einrichten von PostgreSQL, die Vorbereitung einer Datenstruktur in einer PostgreSQL.

Schritt 1: Einrichten nach Postgresql

Über Postgresql - eine kurze Informationen

PostgreSQL ist ein geniales Objektrelationsdatenbankverwaltungssystem. Es ist für den Einsatz erhältlich und unterhält seit über 30 Jahren eine aktive Entwicklung. Es stammt aus der University of California, wo es als Nachfolger von Ingres angesehen wird [7].

Von Anfang an ist es unter Open-Source (GPL) verfügbar, kostenlos zu verwenden, zu ändern und zu verteilen. Es ist in der Branche weit verbreitet und sehr beliebt. PostgreSQL wurde ursprünglich so konzipiert, dass sie nur auf UNIX/Linux -Systemen ausgeführt wurden und später auf anderen Systemen wie Microsoft Windows, Solaris und BSD ausgeführt wurde. Die derzeitige Entwicklung von PostgreSQL wird weltweit von zahlreichen Freiwilligen durchgeführt.

PostgreSQL Setup

Wenn Sie noch nicht fertiggestellt werden, installieren Sie den PostgreSQL Server und den Client lokal lokal, beispielsweise auf Debian GNU/Linux, wie unten beschrieben mit APT. Zwei Artikel befassen sich mit Postgresql - Yunis Said's Artikel [5] erörtert das Setup auf Ubuntu. Trotzdem kratzt er nur die Oberfläche, während sich mein vorheriger Artikel auf die Kombination von PostgreSQL mit der GIS -Erweiterungspostgis konzentriert [6]. Die Beschreibung hier fasst alle Schritte zusammen, die wir für dieses spezielle Setup benötigen.

# APT INSTALLEN SIE POSTGRESQL-13 POSTGRESQL-CLIient-13

Überprüfen Sie als Nächstes, dass PostgreSQL mit Hilfe des Befehl. Dies ist ein Dienstprogramm, das Teil des PostgreSQL -Pakets ist.

# pg_isready
/var/run/postgresql: 5432 - Verbindungen werden akzeptiert

Die obige Ausgabe zeigt, dass PostgreSQL bereit ist und auf eingehende Verbindungen auf Port 5432 wartet. Sofern nicht anders eingestellt ist, ist dies die Standardkonfiguration. Der nächste Schritt ist das Festlegen des Kennworts für die UNIX -Benutzer Postgres:

# Passwd Postgres

Beachten Sie, dass PostgreSQL eine eigene Benutzerdatenbank hat, während das administrative PostgreSQL -Benutzer Postgres noch kein Passwort hat. Der vorherige Schritt muss auch für die Postgresql -Benutzer Postgres durchgeführt werden:

# Su - Postgres
$ psql -c "Benutzer Postgres mit Passwort 'Passwort';"

Der Einfachheit halber ist das ausgewählte Passwort nur ein Passwort und sollte durch eine sicherere Passwortphrase auf anderen Systemen als Tests ersetzt werden. Der obige Befehl verändert die interne Benutzertabelle von PostgreSQL. Beachten Sie die verschiedenen Anführungszeichen - das Passwort in einzelnen Zitaten und die SQL -Abfrage in Doppelzitaten, um zu verhindern, dass der Shell -Interpreter den Befehl falsch bewertet. Fügen Sie außerdem ein Semikolon nach der SQL -Abfrage vor den Doppelzitaten am Ende des Befehls hinzu.

Als nächstes stellen Sie aus administrativen Gründen eine Verbindung zu PostgreSQL als Benutzer Postgres mit dem zuvor erstellten Kennwort her. Der Befehl heißt PSQL:

$ psql

Die Verbindung von Apache Solr mit der PostgreSQL -Datenbank wird als Benutzer -Solr durchgeführt. Fügen wir also den PostgreSQL -Benutzer -Solr hinzu und setzen Sie ein entsprechendes Passwort -Solr für ihn auf einmal:

$ CREATE User Solr mit Passwd 'Solr';

Der Einfachheit halber ist das ausgewählte Passwort nur Solr und sollte durch eine sicherere Passwortphrase für Systeme in Produktion ersetzt werden.

Schritt 2: Vorbereitung einer Datenstruktur

Um Daten zu speichern und abzurufen, ist eine entsprechende Datenbank erforderlich. Der folgende Befehl erstellt eine Datenbank mit Autos, die zum Benutzer -Solr gehört und später verwendet wird.

$ Erstellen Datenbankautos mit Eigentümer = Solr;

Stellen Sie dann eine Verbindung zu den neu erstellten Datenbankautos als Benutzer -Solr her. Die Option -d (kurze Option für -dbname) definiert den Datenbanknamen und -U (kurze Option für -Unername) den Namen des PostgreSQL -Benutzers.

$ psql -d cars -U solr

Eine leere Datenbank ist nicht nützlich, sondern strukturierte Tabellen mit Inhalten. Erstellen Sie die Struktur der Tabellenautos wie folgt:

$ Erstellen Tischwagen (
Id int,
Varchar (100) machen,
Modell varchar (100),
Beschreibung Varchar (100),
Farbvarchar (50),
Preis int
);

Die Tabellenautos enthalten sechs Datenfelder - ID (Ganzzahl), machen (eine Länge von 100), Modell (eine Länge 100), Beschreibung (eine Länge von 100), Farbe (eine Länge 50) und Preis (Ganzzahl). Um einige Beispieldaten zu haben, fügen Sie den Tabellenautos die folgenden Werte als SQL -Anweisungen hinzu:

$ In Autos einfügen (ID, Make, Modell, Beschreibung, Farbe, Preis)
Werte (1, 'bmw', 'x5', 'cooles Auto', 'Gray', 45000);
$ In Autos einfügen (ID, Make, Modell, Beschreibung, Farbe, Preis)
Werte (2, 'Audi', 'Quattro', 'Race Car', 'White', 30000);

Das Ergebnis sind zwei Einträge, die einen grauen BMW X5 darstellen, der 45000 USD kostet, der als cooles Auto beschrieben wird, und ein weißer Rennwagen -Audi Quattro, der 30000 USD kostet.

Beenden Sie als Nächst.

$ \ q

Schritt 3: Verbinden Sie PostgreSQL mit Apache Solr

PostgreSQL und Apache SolRs Verbindung basieren auf zwei Softwareteilen. Der JDBC -Treiber fügt PostgreSQL eine Java -Schnittstelle hinzu, und der zusätzliche Eintrag in der Solr -Konfiguration zeigt Solr, wie Sie mit dem JDBC -Treiber eine Verbindung zu PostgreSQL herstellen können.

Das Hinzufügen des JDBC -Treibers wird wie folgt wie folgt durchgeführt und installiert den JDBC -Treiber aus dem Debian -Paket -Repository:

# APT-Get Installieren Sie libpostgresql-jdbc-java

Auf der Apache -Solr -Seite muss auch ein entsprechender Knoten existieren. Wenn noch nicht erledigt, erstellen Sie als UNIX -Benutzer -Solr die Knotenautos wie folgt:

$ bin/solr create -c cars

Erweitern Sie als nächstes die Solr -Konfiguration für den neu erstellten Knoten. Fügen Sie die folgenden Zeilen in die Datei/var/Solr/data/cars/conf/Solrconfig hinzu.xml:

db-data-config.xml

Erstellen Sie außerdem eine Datei/var/Solr/data/cars/conf/data-config.XML und speichern Sie den folgenden Inhalt darin:

Die obigen Zeilen entsprechen den vorherigen Einstellungen und definieren den JDBC -Treiber, geben Sie den Port 5432 an, um eine Verbindung zum PostgreSQL -DBMS als Benutzer -Solr mit dem entsprechenden Kennwort herzustellen, und setzen. Der Einfachheit halber ist es eine ausgewählte Anweisung, die den gesamten Inhalt der Tabelle greift.

Starten Sie als nächstes den Solr -Server neu, um Ihre Änderungen zu aktivieren. Wenn der Benutzerstamm den folgenden Befehl ausführt:

# Systemctl Neustart solr

Der letzte Schritt ist der Import der Daten, beispielsweise mit der Solr -Webschnittstelle. Das Knotenauswahlfeld wählt die Knotenautos aus, dann im Knotenmenü unter dem Eingabedatenimport, gefolgt von der Auswahl des Vollmarks aus dem Befehlsmenü direkt zu ihm. Drücken Sie schließlich die Taste ausführende Taste. Die folgende Abbildung zeigt, dass SolR die Daten erfolgreich indiziert hat.

Schritt 4: Abfragen von Daten aus dem DBMS

Der vorherige Artikel [3] befasst sich detailliert mit Abfragedaten, abzurufen und das gewünschte Ausgangsformat auszuwählen - CSV, XML oder JSON. Das Abfragen der Daten erfolgt ähnlich wie das, was Sie zuvor gelernt haben, und kein Unterschied ist für den Benutzer sichtbar. Solr erledigt alle Arbeiten hinter den Kulissen und kommuniziert mit dem PostgreSQL -DBMS, das gemäß dem ausgewählten Solr -Kern oder Cluster definiert ist.

Die Verwendung von Solr ändert sich nicht, und Abfragen können über die Solr-Administratorschnittstelle oder über Curl oder WGE auf der Befehlszeile eingereicht werden. Sie senden eine Get -Anfrage mit einer bestimmten URL an den Solr -Server (Abfrage, Aktualisieren oder Löschen). Solr verarbeitet die Anforderung mithilfe des DBMS als Speichereinheit und gibt das Ergebnis der Anfrage zurück. Als nächstes nach beproben Sie die Antwort vor Ort.

Das folgende Beispiel zeigt die Ausgabe der Abfrage “/auswählen?q =*. *”Im JSON -Format in der Solr -Administratorschnittstelle. Die Daten werden aus den zuvor erstellten Datenbankautos abgerufen.

Abschluss

Dieser Artikel zeigt, wie Sie eine PostgreSQL -Datenbank von Apache Solr abfragen, und erläutert das entsprechende Setup. Im nächsten Teil dieser Serie lernen Sie, wie Sie mehrere Solr -Knoten zu einem Solr -Cluster kombinieren können.

Ü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

Links und Referenzen

  • [1] Apache Solr, https: // Lucene.Apache.org/Solr/
  • [2] Frank Hofmann und Jacqui Kabeta: Einführung in Apache Solr. Teil 1, https: // linuxhint.com/Apache-Solr-Setup-a-Node/
  • [3] Frank Hofmann und Jacqui Kabeta: Einführung in Apache Solr. Daten abfragen. Teil 2, http: // linuxhint.com
  • [4] PostgreSQL, https: // www.PostgreSQL.org/
  • [5] Younis sagte: So installieren und einrichten Sie die PostgreSQL -Datenbank auf Ubuntu 20.04, https: // linuxhint.com/install_postgresql_-subuntu/
  • [6] Frank Hofmann: Einrichten von Postgresql mit Postgis auf Debian GNU/Linux 10, https: // linuxHint.com/setup_postgis_debian_postgres/
  • [7] Ingres, Wikipedia, https: // en.Wikipedia.org/wiki/ingres_ (Datenbank)