Introduksjon til Apache Solr. Del 3 Koble til PostgreSQL

Introduksjon til Apache Solr. Del 3 Koble til PostgreSQL
Apache Solr [1] er et rammeverk for søkemotor skrevet i Java og basert på Lucene Search Library [6]. I de to foregående artiklene satte vi opp Apache Solr på den snart utgitte Debian GNU/Linux 11, startet en enkelt datakjerne, lastet opp eksempeldata, demonstrerte hvordan du spørte utdata på forskjellige måter, og etter prosessen den.

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

Trinn 1: Sette opp PostgreSQL

Om PostgreSql - en kort info

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

Fra starten av er den tilgjengelig under Open Source (GPL), gratis å bruke, endre og distribuere. Den er mye brukt og veldig populær i bransjen. PostgreSQL ble opprinnelig designet for å 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å, installer PostgreSQL -server og klient lokalt, for eksempel på Debian GNU/Linux som beskrevet nedenfor ved hjelp av APT. To artikler har å gjøre med 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 -forlengelsen Postgis [6]. Beskrivelsen her oppsummerer alle trinnene vi trenger for akkurat dette oppsettet.

# Apt Install PostgreSQL-13 PostgreSQL-Client-13

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

# pg_isready
/var/Run/PostgreSQL: 5432 - Tilkoblinger aksepteres

Utgangen over viser at PostgreSQL er klar og venter på innkommende tilkoblinger på port 5432. Med mindre annet er angitt, er dette standardkonfigurasjonen. Neste trinn er å angi 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 "endre brukerens postgres med passord 'passord';"

For enkelhets skyld er det valgte passordet bare et passord og bør erstattes av en tryggere passordfrase på annet systemer enn testing. Kommandoen over vil endre den interne brukertabellen for PostgreSQL. Vær oppmerksom på de forskjellige anførselstegnene - Passordet i enkelt sitater og SQL -spørringen i doble sitater for å forhindre at Shell -tolken evaluerer kommandoen på feil måte. Legg også til en semikolon etter SQL -spørringen før de doble sitatene på slutten av kommandoen.

Neste, av administrative grunner, kobler du til PostgreSQL som bruker Postgres med det tidligere opprettet passord. Kommandoen kalles PSQL:

$ psql

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

$ Opprett bruker Solr med 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: Utarbeide 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 databasebiler 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 -brukername) navnet på PostgreSQL -brukeren.

$ psql -d biler -u solr

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

$ Lag bordbiler (
id int,
lage varchar (100),
modell varchar (100),
Beskrivelse varchar (100),
Farge varchar (50),
Pris int
);

Tabellbilene inneholder seks datafelt - id (heltall), lage (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 eksempler på data, legger du til følgende verdier i tabellbilene som SQL -setninger:

$ Sett inn i biler (id, merke, modell, beskrivelse, farge, pris)
Verdier (1, 'bmw', 'x5', 'kul bil', 'grå', 45000);
$ Sett inn i biler (id, merke, modell, beskrivelse, farge, pris)
Verdier (2, 'Audi', 'Quattro', 'Race Car', 'White', 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.

Neste, gå ut fra PostgreSql -konsollen ved hjelp av \ Q, eller slutte.

$ \ q

Trinn 3: Koble PostgreSQL med Apache Solr

PostgreSQL og Apache Solrs tilkobling er basert på to programvarestykker - en Java -driver for PostgreSQL kalt Java Database Connectivity (JDBC) driver og en utvidelse til Solr Server -konfigurasjonen. JDBC -driveren legger til et Java -grensesnitt til PostgreSQL, og tilleggsoppfø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 Package Repository:

# apt-get install libpostgresql-jdbc-java

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

$ bin/solr opprette -c biler

Neste, utvid Solr -konfigurasjonen for den nyopprettede noden. Legg til linjene nedenfor i filen/var/Solr/Data/Cars/Conf/SolrConfig.XML:

DB-data-Config.XML

Lag dessuten en fil/var/Solr/Data/Cars/Conf/Data-Config.XML, og lagrer følgende innhold i det:

Linjene over tilsvarer de forrige innstillingene og definer JDBC -driveren, spesifiser porten 5432 for å koble til PostgreSQL DBMS som bruker Solr med det tilsvarende passordet, og angi SQL -spørringen som skal utføres fra PostgreSQL. For enkelhets skyld er det en valgt uttalelse som griper hele innholdet i tabellen.

Deretter start Solr -serveren på nytt for å aktivere endringene dine. Når brukerroten utfører følgende kommando:

# SystemCTL Restart Solr

Det siste trinnet er import av dataene, for eksempel ved å bruke SOLR -nettgrensesnittet. Node-valgboksen velger Node Cars, deretter fra Node-menyen under oppføringen DataMPort etterfulgt av valg av full-import fra kommando-menyen rett til den. Til slutt, trykk på Execute -knappen. Figuren nedenfor viser at Solr har indeksert dataene med hell.

Trinn 4: Spørring av data fra DBMS

Den forrige artikkelen [3] omhandler spørringsdata i detalj, henter resultatet og velger ønsket utgangsformat - CSV, XML eller JSON. Spørring av dataene 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 koblet som definert i den valgte Solr -kjernen eller klyngen.

Bruken av Solr endres ikke, og spørsmål kan sendes inn 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 slett). SOLR behandler forespørselen ved å bruke DBMS som lagringsenhet og returnerer resultatet av forespørselen. Neste, etter prosessen svaret lokalt.

Eksemplet nedenfor viser utdataene fra spørringen “/Velg?q =*. *”I JSON -format i Solr Admin -grensesnittet. Dataene hentes fra databasebilene som vi opprettet tidligere.

Konklusjon

Denne artikkelen viser hvordan du spør av 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 til en Solr -klynge.

Om forfatterne

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

Frank Hofmann er en 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

  • [1] Apache Solr, https: // Lucene.Apache.org/solr/
  • [2] Frank Hofmann og Jacqui Kabeta: Introduksjon til Apache Solr. Del 1, https: // linuxhint.com/apache-solr-setup-a-node/
  • [3] Frank Hofmann og Jacqui Kabeta: Introduksjon til Apache Solr. Spørring av data. Del 2, http: // linuxhint.com
  • [4] PostgreSql, https: // www.PostgreSql.org/
  • [5] Younis sa: Hvordan installere og sette opp PostgreSQL -databasen på Ubuntu 20.04, https: // linuxhint.com/install_postgresql_-ubuntu/
  • [6] Frank Hofmann: Sette opp PostgreSQL med Postgis på Debian Gnu/Linux 10, https: // Linuxhint.com/setup_postgis_debian_postgres/
  • [7] Ingres, Wikipedia, https: // en.Wikipedia.org/wiki/ingres_ (database)