Apache Solr

Introduksjon til Apache Solr. Del 3 Koble til PostgreSQL

Introduksjon til Apache Solr. Del 3 Koble til PostgreSQL
Apache Solr [1] er et søkemotorrammeverk skrevet i Java og basert på Lucene-søkebiblioteket [6]. I de to foregående artiklene satte vi opp Apache Solr på Debian GNU / Linux 11 som snart skal utgis, initierte en enkelt datakjerne, lastet opp eksempeldata, demonstrerte hvordan du kunne spørre om utdata på forskjellige måter, og etterbehandling den.

Dette er en oppfølgingsartikkel til de to foregående [2,3]. Så langt lastet vi indekserte data inn i Apache Solr-lagringen og spurte data om det. Nå vil du lære å koble relasjonsdatabasehåndteringssystemet PostgreSQL [4] til Apache Solr og gjøre et søk i det ved hjelp av funksjonene til Solr. Dette gjør det nødvendig å gjøre flere trinn beskrevet mer detaljert nedenfor - sette opp PostgreSQL, utarbeide en datastruktur i en PostgreSQL-database og koble PostgreSQL til Apache Solr, og gjøre vårt søk.

Trinn 1: Sette opp PostgreSQL

Om PostgreSQL - en kort info

PostgreSQL er et genialt objektrelasjonelt databasestyringssystem. Den har vært tilgjengelig for bruk og har gjennomgått en aktiv utvikling i over 30 år nå. Den stammer fra University of California, hvor den blir sett på som etterfølgeren til Ingres [7].

Fra starten er den tilgjengelig under åpen kildekode (GPL), gratis å bruke, modifisere og distribuere. Det er mye brukt og veldig populært i bransjen. PostgreSQL ble opprinnelig designet for kun å kjøre på UNIX / Linux-systemer og ble senere designet for å kjøre på andre systemer som Microsoft Windows, Solaris og BSD. Den nåværende utviklingen av PostgreSQL gjøres over hele verden av mange frivillige.

PostgreSQL-oppsett

Hvis det ikke er gjort ennå, installerer du PostgreSQL-server og klient lokalt, for eksempel på Debian GNU / Linux som beskrevet nedenfor ved hjelp av apt. To artikler handler om PostgreSQL - Yunis Saids artikkel [5] diskuterer oppsettet på Ubuntu. Likevel klør han bare overflaten mens min forrige artikkel fokuserer på kombinasjonen av PostgreSQL med GIS-utvidelsen PostGIS [6]. Beskrivelsen her oppsummerer alle trinnene vi trenger for dette spesielle oppsettet.

# apt install postgresql-13 postgresql-client-13

Kontroller deretter at PostgreSQL kjører ved hjelp av kommandoen pg_isready. Dette er et verktøy som er en del av PostgreSQL-pakken.

# pg_isready
/ var / run / postgresql: 5432 - Tilkoblinger aksepteres

Utgangen ovenfor viser at PostgreSQL er klar og venter på innkommende tilkoblinger på port 5432. Med mindre annet er angitt, er dette standardkonfigurasjonen. Neste trinn er å sette passordet for UNIX-brukeren Postgres:

# passwd Postgres

Husk at PostgreSQL har sin egen brukerdatabase, mens den administrative PostgreSQL-brukeren Postgres ikke har passord ennå. Det forrige trinnet må også gjøres for PostgreSQL-brukeren Postgres:

# su - Postgres
$ psql -c "ALTER USER Postgres WITH PASSWORD 'password';"

For enkelhets skyld er det valgte passordet bare et passord og bør erstattes av en tryggere passordfrase på andre systemer enn testing. Kommandoen ovenfor vil endre den interne brukertabellen til PostgreSQL. Vær oppmerksom på de forskjellige anførselstegnene - passordet i enkle anførselstegn og SQL-spørringen i doble anførselstegn for å forhindre at skalltolk tolker kommandoen på feil måte. Legg også til et semikolon etter SQL-spørringen før doble anførselstegn på slutten av kommandoen.

Deretter, av administrative årsaker, koble til PostgreSQL som bruker Postgres med det tidligere opprettede passordet. Kommandoen heter psql:

$ psql

Koble fra Apache Solr til PostgreSQL-databasen gjøres som brukeren. Så la oss legge til PostgreSQL-brukerens solr og sette et tilsvarende passord solr for ham på en gang:

$ CREATE USER solr WITH PASSWD 'solr';

For enkelhets skyld er det valgte passordet bare solr og bør erstattes av en tryggere passordfrase på systemer som er i produksjon.

Trinn 2: Klargjøre en datastruktur

For å lagre og hente data er det nødvendig med en tilsvarende database. Kommandoen nedenfor oppretter en database med biler som tilhører brukeren solr og vil bli brukt senere.

$ OPPRETT DATABASISBILER MED EIER = solr;

Koble deretter til de nyopprettede databasebilene som bruker solr. Alternativet -d (kort alternativ for -dbname) definerer databasenavnet, og -U (kort alternativ for -brukernavn) navnet på PostgreSQL-brukeren.

$ psql -d biler -U solr

En tom database er ikke nyttig, men strukturerte tabeller med innhold gjør det. Lag strukturen til bordbilene som følger:

$ OPPRETT BILER (
id int,
lage varchar (100),
modell varchar (100),
beskrivelse varchar (100),
farge varchar (50),
pris int
);

Tabellbilene inneholder seks datafelt - id (heltall), merke (en streng med lengde 100), modell (en streng med lengde 100), beskrivelse (en streng med lengde 100), farge (en streng med lengde 50) og pris (heltall). For å ha noen eksempeldata, legg til følgende verdier i tabellbilene som SQL-setninger:

$ INSERT INTO biler (id, merke, modell, beskrivelse, farge, pris)
VERDIER (1, 'BMW', 'X5', 'Kul bil', 'grå', 45000);
$ INSERT INTO biler (id, merke, modell, beskrivelse, farge, pris)
VERDIER (2, 'Audi', 'Quattro', 'racerbil', 'hvit', 30000);

Resultatet er to oppføringer som representerer en grå BMW X5 som koster USD 45000, beskrevet som en kul bil, og en hvit racerbil Audi Quattro som koster USD 30000.

Gå deretter ut av PostgreSQL-konsollen med \ q, eller avslutt.

$ \ q

Trinn 3: Koble PostgreSQL med Apache Solr

Forbindelsen til PostgreSQL og Apache Solr er basert på to programvarer - en Java-driver for PostgreSQL kalt Java Database Connectivity (JDBC) -driveren og en utvidelse av Solr-serverkonfigurasjonen. JDBC-driveren legger til et Java-grensesnitt til PostgreSQL, og den ekstra oppføringen i Solr-konfigurasjonen forteller Solr hvordan du kobler til PostgreSQL ved hjelp av JDBC-driveren.

Å legge til JDBC-driveren gjøres som brukerrot som følger, og installerer JDBC-driveren fra Debian-pakkelageret:

# apt-get install libpostgresql-jdbc-java

På Apache Solr-siden må det også eksistere en tilsvarende node. Hvis det ikke er gjort ennå, som UNIX-brukeren solr, oppretter du nodebiler som følger:

$ bin / solr create -c biler

Deretter utvider du Solr-konfigurasjonen for den nyopprettede noden. Legg linjene nedenfor til filen / var / solr / data / cars / conf / solrconfig.xml:

db-data-config.xml

Videre oppretter du en fil / var / solr / data / cars / conf / data-config.xml, og lagre følgende innhold i den:

Linjene ovenfor tilsvarer de forrige innstillingene og definerer JDBC-driveren, spesifiser porten 5432 for å koble til PostgreSQL DBMS som brukeren solr med det tilsvarende passordet, og angi SQL-spørringen som skal utføres fra PostgreSQL. For enkelhets skyld er det en SELECT-setning som tar tak i hele innholdet i tabellen.

Start deretter Solr-serveren på nytt for å aktivere endringene. Som brukerrot utfører følgende kommando:

# systemctl start solr

Det siste trinnet er import av dataene, for eksempel ved hjelp av Solr webgrensesnitt. Valgboksen for noder velger noden biler, deretter fra Node-menyen under oppføringen Dataimport etterfulgt av valget av full-import fra Kommando-menyen rett til den. Til slutt trykker du på Utfør-knappen. Figuren nedenfor viser at Solr har indeksert dataene.

Trinn 4: Spørring av data fra DBMS

Den forrige artikkelen [3] omhandler spørring av data i detalj, henting av resultatet og valg av ønsket utdataformat - CSV, XML eller JSON. Spørring av data gjøres på samme måte som det du har lært før, og ingen forskjell er synlig for brukeren. Solr gjør alt arbeidet bak kulissene og kommuniserer med PostgreSQL DBMS tilkoblet som definert i den valgte Solr-kjernen eller klyngen.

Bruk av Solr endres ikke, og spørsmål kan sendes via Solr admin-grensesnittet eller ved hjelp av curl eller wget på kommandolinjen. Du sender en Get-forespørsel med en spesifikk URL til Solr-serveren (spørring, oppdatering eller sletting). Solr behandler forespørselen ved hjelp av DBMS som en lagringsenhet og returnerer resultatet av forespørselen. Deretter etterbehandler du svaret lokalt.

Eksemplet nedenfor viser resultatet av spørringen “/ select?q = *. * ”I JSON-format i Solr-administrasjonsgrensesnittet. Dataene hentes fra databasebilene vi opprettet tidligere.

Konklusjon

Denne artikkelen viser hvordan du spør etter en PostgreSQL-database fra Apache Solr, og forklarer det tilsvarende oppsettet. I neste del av denne serien lærer du hvordan du kombinerer flere Solr-noder i en Solr-klynge.

Om forfatterne

Jacqui Kabeta er miljøverner, ivrig forsker, trener og mentor. I flere afrikanske land har hun jobbet i IT-bransjen og NGO-miljøer.

Frank Hofmann er IT-utvikler, trener og forfatter og foretrekker å jobbe fra Berlin, Genève og Cape Town. Medforfatter av Debian Package Management Book tilgjengelig fra dpmb.org

Lenker og referanser

Mus Hvordan bruke Xdotool til å stimulere museklikk og tastetrykk i Linux
Hvordan bruke Xdotool til å stimulere museklikk og tastetrykk i Linux
Xdotool er et gratis og åpen kildekode kommandolinjeverktøy for å simulere museklikk og tastetrykk. Denne artikkelen vil dekke en kort guide om bruk a...
Mus Topp 5 ergonomiske datamuseprodukter for Linux
Topp 5 ergonomiske datamuseprodukter for Linux
Gir langvarig bruk av datamaskiner smerter i håndleddet eller fingrene? Lider du av stive ledd og må hele tiden riste på deg hendene? Føler du en bren...
Mus Hvordan endre mus og berøringsplateinnstillinger ved hjelp av Xinput i Linux
Hvordan endre mus og berøringsplateinnstillinger ved hjelp av Xinput i Linux
De fleste Linux-distribusjoner leveres med "libinput" -biblioteket som standard for å håndtere inngangshendelser på et system. Den kan behandle inngan...