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 - PostgresFor 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:
$ psqlKoble 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 solrEn tom database er ikke nyttig, men strukturerte tabeller med innhold gjør. Lag strukturen til bordbilene som følger:
$ Lag bordbiler (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)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.
$ \ qTrinn 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-javaPå 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 bilerNeste, utvid Solr -konfigurasjonen for den nyopprettede noden. Legg til linjene nedenfor i filen/var/Solr/Data/Cars/Conf/SolrConfig.XML:
DB-data-Config.XMLLag 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 SolrDet 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