To je nadaljevalni članek k prejšnjim dvema [2,3]. Doslej smo indeksirane podatke nalagali v pomnilnik Apache Solr in o njih poizvedovali. Zdaj boste izvedeli, kako povezati sistem za upravljanje relacijske baze podatkov PostgreSQL [4] na Apache Solr in v njem iskati z uporabo Solr. Zaradi tega je treba narediti več podrobno opisanih korakov - nastavitev PostgreSQL, priprava podatkovne strukture v zbirki podatkov PostgreSQL in povezovanje PostgreSQL z Apache Solr ter iskanje.
1. korak: Nastavitev PostgreSQL
O PostgreSQL - kratke informacije
PostgreSQL je iznajdljiv objektno-relacijski sistem za upravljanje baz podatkov. Na voljo je za uporabo in se že več kot 30 let aktivno razvija. Izvira s kalifornijske univerze, kjer velja za naslednika Ingresa [7].
Od začetka je na voljo v odprtokodni različici (GPL) in je brezplačen za uporabo, spreminjanje in distribucijo. Veliko se uporablja in je zelo priljubljen v industriji. PostgreSQL je bil prvotno zasnovan samo za sisteme UNIX / Linux, kasneje pa za druge sisteme, kot so Microsoft Windows, Solaris in BSD. Trenutni razvoj PostgreSQL po vsem svetu izvajajo številni prostovoljci.
Nastavitev PostgreSQL
Če še ni končano, namestite strežnik in odjemalca PostgreSQL lokalno, na primer na Debian GNU / Linux, kot je opisano spodaj z uporabo apt. Dva članka se ukvarjata s PostgreSQL - članek Yunisa Saida [5] govori o namestitvi v Ubuntuju. Kljub temu pa samo opraska površino, medtem ko se moj prejšnji članek osredotoča na kombinacijo PostgreSQL in GIS razširitve PostGIS [6]. Opis tukaj povzema vse korake, ki jih potrebujemo za to določeno nastavitev.
# apt namestite postgresql-13 postgresql-client-13Nato s pomočjo ukaza pg_isready preverite, ali se PostgreSQL izvaja. To je pripomoček, ki je del paketa PostgreSQL.
# pg_isready/ var / run / postgresql: 5432 - Povezave so sprejete
Zgornji izhod kaže, da je PostgreSQL pripravljen in čaka na dohodne povezave na vratih 5432. Če ni določeno drugače, je to standardna konfiguracija. Naslednji korak je nastavitev gesla za uporabnika UNIX Postgres:
# passwd PostgresUpoštevajte, da ima PostgreSQL lastno bazo podatkov o uporabnikih, medtem ko skrbniški uporabnik PostgreSQL Postgres še nima gesla. Prejšnji korak je treba opraviti tudi za uporabnika PostgreSQL Postgres:
# su - Postgres$ psql -c "ALTER USER Postgres WITH PASSWORD 'password';"
Zaradi enostavnosti je izbrano geslo le geslo in ga je treba nadomestiti z varnejšim geslom v drugih sistemih, razen za testiranje. Zgornji ukaz bo spremenil notranjo uporabniško tabelo PostgreSQL. Zavedajte se različnih narekovajev - gesla v enojnih narekovajih in poizvedbe SQL v dvojnih narekovajih, da preprečite, da bi tolmač lupine ukaz ocenil na napačen način. Poleg pobude SQL dodajte podpičje pred dvojnimi narekovaji na koncu ukaza.
Nato se iz upravnih razlogov povežite z PostgreSQL kot uporabnik Postgres s predhodno ustvarjenim geslom. Ukaz se imenuje psql:
$ psqlPovezava iz Apache Solr v bazo podatkov PostgreSQL se izvede kot uporabniška rešitev. Torej, dodajte uporabniški rešitelj PostgreSQL in mu z enim potezom nastavite ustrezen reševalnik gesel:
$ USTVARI UPORABNIŠKO solr s PASSWD 'solr';Zaradi enostavnosti je izbrano geslo samo rešitev in ga je treba nadomestiti z varnejšim geslom v sistemih, ki so v izdelavi.
2. korak: Priprava podatkovne strukture
Za shranjevanje in pridobivanje podatkov je potrebna ustrezna baza podatkov. Spodnji ukaz ustvari bazo podatkov o avtomobilih, ki pripada uporabniški rešitvi in bo uporabljena pozneje.
$ USTVARI PODATKOVNE BAZE avtomobilov Z LASTNIKOM = solr;Nato se povežite z novo ustvarjenimi avtomobili zbirke podatkov kot uporabnik. Možnost -d (kratka možnost za -dbname) definira ime baze podatkov, -U (kratka možnost za -username) pa ime uporabnika PostgreSQL.
$ psql -d avtomobili -U solrPrazna baza podatkov ni uporabna, vendar strukturirane tabele z vsebino to počnejo. Ustvarite strukturo namiznih avtomobilov, kot sledi:
$ USTVARI TABELO avtomobilov (id int,
naredi varchar (100),
model varchar (100),
opis varchar (100),
barva varchar (50),
cena int
);
Tabela avtomobilov vsebuje šest podatkovnih polj - id (celo število), znamka (niz dolžine 100), model (niz dolžine 100), opis (niz dolžine 100), barva (niz dolžine 50) in cena (celo število). Če želite nekaj vzorčnih podatkov, dodajte naslednje vrednosti v preglednice avtomobilov kot stavke SQL:
$ INSERT INTO avtomobilov (id, znamka, model, opis, barva, cena)VREDNOTE (1, 'BMW', 'X5', 'Cool car', 'grey', 45000);
$ INSERT INTO avtomobilov (id, znamka, model, opis, barva, cena)
VREDNOTE (2, 'Audi', 'Quattro', 'dirkalnik', 'bela', 30000);
Rezultat sta dva vnosa, ki predstavljata sivi BMW X5, ki stane 45000 USD, opisan kot kul avtomobil, in beli dirkalnik Audi Quattro, ki stane 30000 USD.
Nato zapustite konzolo PostgreSQL z \ q ali zaprete.
$ \ q3. korak: Povezava PostgreSQL z Apache Solr
Povezava PostgreSQL in Apache Solr temelji na dveh delih programske opreme - gonilniku Java za PostgreSQL, imenovanem gonilnik Java Database Connectivity (JDBC), in razširitvi konfiguracije strežnika Solr. Gonilnik JDBC dodaja vmesnik Java PostgreSQL, dodaten vnos v konfiguraciji Solr pa pove Solrju, kako se z gonilnikom JDBC poveže s PostgreSQL.
Dodajanje gonilnika JDBC se izvede kot uporabniški koren, kot sledi, in namesti gonilnik JDBC iz repozitorija paketov Debian:
# apt-get namestite libpostgresql-jdbc-javaNa strani Apache Solr mora obstajati tudi ustrezno vozlišče. Če še ni končano, kot uporabniški razreševalec UNIX ustvarite vozlišča vozil, kot sledi:
$ bin / solr ustvari -c avtomobileNato razširite konfiguracijo Solr za novo ustvarjeno vozlišče. V datoteko / var / solr / data / cars / conf / solrconfig dodajte spodnje vrstice.xml:
db-data-config.xmlPoleg tega ustvarite datoteko / var / solr / data / cars / conf / data-config.xml in vanj shranite naslednjo vsebino:
Zgornje vrstice ustrezajo prejšnjim nastavitvam in opredeljujejo gonilnik JDBC, določite vrata 5432 za povezavo s sistemom DBMS PostgreSQL kot uporabniško rešitev z ustreznim geslom in nastavite poizvedbo SQL, ki naj se izvaja iz PostgreSQL. Zaradi enostavnosti je izjava SELECT, ki zajema celotno vsebino tabele.
Nato znova zaženite strežnik Solr, da aktivirate spremembe. Kot uporabniški koren izvedite naslednji ukaz:
# systemctl znova zaženi solrZadnji korak je uvoz podatkov, na primer s pomočjo spletnega vmesnika Solr. Polje za izbiro vozlišča izbere vozlišča vozlišča, nato v meniju Vozilo pod vnosom Dataimport, čemur sledi izbira celotnega uvoza iz menija Ukaz desno do njega. Na koncu pritisnite gumb Izvedi. Spodnja slika prikazuje, da je Solr podatke uspešno indeksiral.
4. korak: Poizvedovanje po podatkih iz DBMS
Prejšnji članek [3] podrobno obravnava poizvedovanje po podatkih, pridobivanje rezultata in izbiro želene izhodne oblike - CSV, XML ali JSON. Poizvedovanje po podatkih poteka podobno kot že prej in uporabnik ne vidi razlike. Solr opravlja vsa dela v zakulisju in komunicira z DBMS PostgreSQL, povezanim, kot je določeno v izbranem jedru ali gruči Solr.
Uporaba Solrja se ne spremeni in poizvedbe lahko oddate prek skrbniškega vmesnika Solr ali z uporabo curl ali wget v ukazni vrstici. Na strežnik Solr pošljete zahtevo za pridobitev z določenim URL-jem (poizvedba, posodobitev ali brisanje). Solr zahtevo obdela s pomočjo DBMS kot pomnilniške enote in vrne rezultat zahteve. Nato odgovor obdelajte lokalno.
Spodnji primer prikazuje rezultat poizvedbe “/ select?q = *. * ”V obliki JSON v skrbniškem vmesniku Solr. Podatki se pridobijo iz avtomobilov zbirke podatkov, ki smo jih ustvarili prej.
Zaključek
Ta članek prikazuje, kako poizvedovati po zbirki podatkov PostgreSQL pri Apache Solr in pojasnjuje ustrezno nastavitev. V naslednjem delu te serije boste izvedeli, kako združiti več vozlišč Solr v gručo Solr.
O avtorjih
Jacqui Kabeta je okoljevarstvenica, navdušena raziskovalka, trenerka in mentorica. V več afriških državah je delala v IT industriji in okoljih nevladnih organizacij.
Frank Hofmann je razvijalec informacijskih tehnologij, trener in avtor ter raje dela iz Berlina, Ženeve in Cape Towna. Soavtor knjige za upravljanje paketov Debian, ki je na voljo pri dpmb.org
Povezave in reference
- [1] Apache Solr, https: // lucen.apache.org / solr /
- [2] Frank Hofmann in Jacqui Kabeta: Uvod v Apache Solr. 1. del, https: // linuxhint.com / apache-solr-setup-a-node /
- [3] Frank Hofmann in Jacqui Kabeta: Uvod v Apache Solr. Poizvedovanje po podatkih. 2. del, http: // linuxhint.com
- [4] PostgreSQL, https: // www.postgresql.org /
- [5] Younis Said: Kako namestiti in nastaviti bazo podatkov PostgreSQL v Ubuntu 20.04, https: // linuxhint.com / install_postgresql_-ubuntu /
- [6] Frank Hofmann: Nastavitev PostgreSQL z PostGIS na Debian GNU / Linux 10, https: // linuxhint.com / setup_postgis_debian_postgres /
- [7] Ingres, Wikipedia, https: // en.wikipedia.org / wiki / Ingres_ (baza podatkov)