Apache Solr

Inleiding tot Apache Solr. Deel 3 Verbinding maken met PostgreSQL

Inleiding tot Apache Solr. Deel 3 Verbinding maken met PostgreSQL
Apache Solr [1] is een zoekmachine-framework geschreven in Java en gebaseerd op de Lucene-zoekbibliotheek [6]. In de vorige twee artikelen hebben we Apache Solr opgezet op de binnenkort uit te brengen Debian GNU/Linux 11, een enkele datacore gestart, voorbeeldgegevens geüpload, gedemonstreerd hoe uitvoergegevens op verschillende manieren kunnen worden opgevraagd en het.

Dit is een vervolgartikel op de vorige twee [2,3]. Tot nu toe hebben we geïndexeerde gegevens in de Apache Solr-opslag geladen en daar gegevens over opgevraagd. Nu leert u hoe u het relationele databasebeheersysteem PostgreSQL [4] kunt verbinden met Apache Solr en hoe u hierin kunt zoeken met behulp van de mogelijkheden van Solr. Dit maakt het noodzakelijk om verschillende stappen uit te voeren die hieronder in meer detail worden beschreven - PostgreSQL instellen, een gegevensstructuur voorbereiden in een PostgreSQL-database en PostgreSQL verbinden met Apache Solr, en onze zoekopdracht uitvoeren.

Stap 1: PostgreSQL instellen

Over PostgreSQL - een korte info

PostgreSQL is een ingenieus object-relationeel databasebeheersysteem. Het is beschikbaar voor gebruik en is al meer dan 30 jaar actief in ontwikkeling. Het is afkomstig van de University of California, waar het wordt gezien als de opvolger van Ingres [7].

Vanaf het begin is het beschikbaar onder open-source (GPL), gratis te gebruiken, aan te passen en te distribueren. Het wordt veel gebruikt en is erg populair in de industrie. PostgreSQL was oorspronkelijk ontworpen om alleen op UNIX/Linux-systemen te draaien en werd later ontworpen om op andere systemen te draaien, zoals Microsoft Windows, Solaris en BSD. De huidige ontwikkeling van PostgreSQL wordt wereldwijd gedaan door talloze vrijwilligers.

PostgreSQL-configuratie

Als u nog niet klaar bent, installeer dan de PostgreSQL-server en -client lokaal, bijvoorbeeld op Debian GNU/Linux zoals hieronder beschreven met apt. Twee artikelen gaan over PostgreSQL - Yunis Said's artikel [5] bespreekt de setup op Ubuntu. Toch krabbelt hij slechts aan de oppervlakte terwijl mijn vorige artikel zich richt op de combinatie van PostgreSQL met de GIS-extensie PostGIS [6]. De beschrijving hier vat alle stappen samen die we nodig hebben voor deze specifieke opstelling.

# apt install postgresql-13 postgresql-client-13

Controleer vervolgens of PostgreSQL actief is met behulp van de opdracht pg_isready. Dit is een hulpprogramma dat deel uitmaakt van het PostgreSQL-pakket.

# pg_isready
/var/run/postgresql:5432 - Verbindingen worden geaccepteerd

De uitvoer hierboven laat zien dat PostgreSQL klaar is en wacht op inkomende verbindingen op poort 5432. Tenzij anders ingesteld, is dit de standaardconfiguratie. De volgende stap is het instellen van het wachtwoord voor de UNIX-gebruiker Postgres:

# passwd Postgres

Houd er rekening mee dat PostgreSQL zijn eigen gebruikersdatabase heeft, terwijl de administratieve PostgreSQL-gebruiker Postgres nog geen wachtwoord heeft. De vorige stap moet ook worden gedaan voor de PostgreSQL-gebruiker Postgres:

# su - Postgres
$ psql -c "WIJZIG GEBRUIKER Postgres MET WACHTWOORD 'wachtwoord';"

Voor de eenvoud is het gekozen wachtwoord slechts een wachtwoord en moet het worden vervangen door een veiliger wachtwoordzin op andere systemen dan testen. Het bovenstaande commando zal de interne gebruikerstabel van PostgreSQL veranderen. Let op de verschillende aanhalingstekens - het wachtwoord tussen enkele aanhalingstekens en de SQL-query tussen dubbele aanhalingstekens om te voorkomen dat de shell-interpreter de opdracht op de verkeerde manier evalueert. Voeg ook een puntkomma toe na de SQL-query vóór de dubbele aanhalingstekens aan het einde van de opdracht.

Maak vervolgens om administratieve redenen verbinding met PostgreSQL als gebruiker Postgres met het eerder gemaakte wachtwoord. Het commando heet psql:

$ psql

Verbinding maken vanuit Apache Solr naar de PostgreSQL-database wordt gedaan als de gebruikerssolr. Laten we dus de PostgreSQL-gebruiker solr toevoegen en in één keer een bijbehorend wachtwoord solr voor hem instellen:

$ MAAK GEBRUIKER solr MET PASSWD 'solr';

Voor de eenvoud is het gekozen wachtwoord gewoon solr en moet het worden vervangen door een veiliger wachtwoordzin op systemen die in productie zijn.

Stap 2: Een datastructuur voorbereiden

Om gegevens op te slaan en op te halen, is een bijbehorende database nodig. Met de onderstaande opdracht wordt een database met auto's gemaakt die toebehoort aan de gebruiker solr en die later zal worden gebruikt.

$ MAAK DATABASE auto's MET EIGENAAR = solr;

Maak vervolgens verbinding met de nieuw gemaakte database-auto's als gebruiker solr. De optie -d (korte optie voor -dbname) definieert de databasenaam en -U (korte optie voor -gebruikersnaam) de naam van de PostgreSQL-gebruiker.

$ psql -d auto's -U solr

Een lege database is niet handig, maar gestructureerde tabellen met inhoud wel. Maak de structuur van de tafelwagens als volgt:

$ MAAK TAFEL auto's (
id int,
maak varchar(100),
model varchar(100),
omschrijving varchar(100),
kleur varchar(50),
prijs incl
);

De tafelwagens bevatten zes gegevensvelden: id (integer), make (een reeks van 100), model (een reeks van 100), description (een reeks van 100), kleur (een reeks van 50) en prijs (geheel getal). Om enkele voorbeeldgegevens te hebben, voegt u de volgende waarden toe aan de tabelauto's als SQL-instructies:

$ INSERT INTO auto's (id, merk, model, beschrijving, kleur, prijs)
WAARDEN (1, 'BMW', 'X5', 'Cool auto', 'grijs', 45000);
$ INSERT INTO auto's (id, merk, model, beschrijving, kleur, prijs)
WAARDEN (2, 'Audi', 'Quattro', 'raceauto', 'wit', 30000);

Het resultaat is twee inzendingen die een grijze BMW X5 vertegenwoordigen die $ 45000 kost, beschreven als een coole auto, en een witte raceauto Audi Quattro die $ 30000 kost.

Sluit vervolgens de PostgreSQL-console af met \q, of stop.

$ \q

Stap 3: PostgreSQL verbinden met Apache Solr

De verbinding van PostgreSQL en Apache Solr is gebaseerd op twee stukjes software: een Java-stuurprogramma voor PostgreSQL genaamd Java Database Connectivity (JDBC)-stuurprogramma en een uitbreiding op de Solr-serverconfiguratie. Het JDBC-stuurprogramma voegt een Java-interface toe aan PostgreSQL en de extra vermelding in de Solr-configuratie vertelt Solr hoe verbinding te maken met PostgreSQL met behulp van het JDBC-stuurprogramma.

Het toevoegen van het JDBC-stuurprogramma gebeurt als gebruikersroot als volgt, en installeert het JDBC-stuurprogramma vanuit de pakketrepository van Debian:

# apt-get install libpostgresql-jdbc-java

Aan de Apache Solr-kant moet ook een corresponderend knooppunt bestaan. Als u nog niet klaar bent, maakt u als UNIX-gebruiker de node-auto's als volgt aan:

$ bin/solr maak -c auto's

Breid vervolgens de Solr-configuratie uit voor het nieuw gemaakte knooppunt. Voeg de onderstaande regels toe aan het bestand /var/solr/data/cars/conf/solrconfig.xml:

db-data-config.xml

Maak bovendien een bestand /var/solr/data/cars/conf/data-config.xml en sla de volgende inhoud erin op:

De bovenstaande regels komen overeen met de vorige instellingen en definiëren het JDBC-stuurprogramma, specificeer de poort 5432 om verbinding te maken met de PostgreSQL DBMS als de gebruikerssolr met het bijbehorende wachtwoord, en stel de SQL-query in die moet worden uitgevoerd vanuit PostgreSQL. Voor de eenvoud is het een SELECT-instructie die de volledige inhoud van de tabel pakt.

Start vervolgens de Solr-server opnieuw om uw wijzigingen te activeren. Voer als gebruiker root het volgende commando uit:

# systemctl herstart solr

De laatste stap is het importeren van de gegevens, bijvoorbeeld met behulp van de Solr-webinterface. Het knooppuntselectievak kiest de knooppuntauto's en vervolgens uit het Knooppuntmenu onder het item Gegevensimport gevolgd door de selectie van volledig importeren vanuit het Command-menu er recht naar toe. Druk ten slotte op de knop Uitvoeren. De onderstaande afbeelding laat zien dat Solr de gegevens met succes heeft geïndexeerd.

Stap 4: Gegevens opvragen uit het DBMS

Het vorige artikel [3] gaat over het in detail opvragen van gegevens, het ophalen van het resultaat en het selecteren van het gewenste uitvoerformaat - CSV, XML of JSON. Het opvragen van de gegevens gebeurt op dezelfde manier als wat u eerder hebt geleerd, en er is geen verschil zichtbaar voor de gebruiker. Solr doet al het werk achter de schermen en communiceert met het PostgreSQL DBMS dat is verbonden zoals gedefinieerd in de geselecteerde Solr-kern of -cluster.

Het gebruik van Solr verandert niet en vragen kunnen worden ingediend via de Solr-beheerdersinterface of met behulp van curl of wget op de opdrachtregel. U stuurt een Get-verzoek met een specifieke URL naar de Solr-server (opvragen, bijwerken of verwijderen). Solr verwerkt het verzoek met behulp van het DBMS als opslageenheid en retourneert het resultaat van het verzoek. Verwerk het antwoord vervolgens lokaal na.

Het onderstaande voorbeeld toont de uitvoer van de query “/select?q=*. *" in JSON-formaat in de Solr-beheerdersinterface. De gegevens worden opgehaald uit de databaseauto's die we eerder hebben gemaakt.

Conclusie

Dit artikel laat zien hoe je een PostgreSQL-database kunt opvragen vanuit Apache Solr en legt de bijbehorende setup uit. In het volgende deel van deze serie leer je hoe je verschillende Solr-knooppunten kunt combineren tot een Solr-cluster.

Over de Auteurs

Jacqui Kabeta is een milieuactivist, fervent onderzoeker, trainer en mentor. In verschillende Afrikaanse landen heeft ze gewerkt in de IT-industrie en NGO-omgevingen.

Frank Hofmann is een IT-ontwikkelaar, trainer en auteur en werkt het liefst vanuit Berlijn, Genève en Kaapstad. Co-auteur van het Debian Package Management Book verkrijgbaar bij dpmb.org

Links en referenties

De scrollrichting van de muis en touchpads omkeren in Windows 10
Muis en Touchpads maken computergebruik niet alleen eenvoudig, maar ook efficiënter en minder tijdrovend. We kunnen ons een leven zonder deze apparate...
Hoe de muisaanwijzer en cursorgrootte, kleur en schema op Windows 10 te veranderen
De muisaanwijzer en cursor in Windows 10 zijn zeer belangrijke aspecten van het besturingssysteem. Dit geldt ook voor andere besturingssystemen, dus i...
Gratis en open source game-engines voor het ontwikkelen van Linux-games
Dit artikel behandelt een lijst met gratis en open source game-engines die kunnen worden gebruikt voor het ontwikkelen van 2D- en 3D-games op Linux. E...