Apache Solr

Bevezetés az Apache Solr-ba. 3. rész Csatlakozás a PostgreSQL-hez

Bevezetés az Apache Solr-ba. 3. rész Csatlakozás a PostgreSQL-hez
Az Apache Solr [1] egy Java-ban írt keresőmotor keretrendszer, amely a Lucene keresési könyvtárra épül [6]. Az előző két cikkben felállítottuk az Apache Solr alkalmazást a hamarosan megjelenő Debian GNU / Linux 11 rendszeren, elindítottunk egy adatmagot, feltöltöttünk példaadatokat, bemutattuk, hogyan lehet különféle módon lekérdezni a kimeneti adatokat, és utólag feldolgozni. azt.

Ez az előző kettő folytatása [2,3]. Eddig indexelt adatokat töltöttünk be az Apache Solr tárolóba, és erről lekérdeztük az adatokat. Most megtanulja, hogyan kell összekapcsolni a PostgreSQL [4] relációs adatbázis-kezelő rendszert az Apache Solr programmal, és hogyan kell keresni benne a Solr képességeinek felhasználásával. Ez szükségessé teszi az alábbiakban ismertetett több lépés részletesebb elvégzését - a PostgreSQL beállítása, az adatstruktúra előkészítése a PostgreSQL adatbázisban, a PostgreSQL összekapcsolása az Apache Solr-rel és a keresés elvégzése.

1. lépés: A PostgreSQL beállítása

A PostgreSQL-ről - rövid információ

A PostgreSQL egy ötletes objektum-relációs adatbázis-kezelő rendszer. Használható és már több mint 30 éve aktív fejlesztésen ment keresztül. A kaliforniai egyetemről származik, ahol Ingres utódjának tekintik [7].

A kezdetektől fogva elérhető nyílt forráskódú (GPL) alatt, szabadon használható, módosítható és terjeszthető. Széles körben használják és nagyon népszerűek az iparban. A PostgreSQL-t eredetileg csak UNIX / Linux rendszereken futtatták, később pedig más rendszereken, például Microsoft Windows, Solaris és BSD futtatására. A PostgreSQL jelenlegi fejlesztését világszerte számos önkéntes végzi.

PostgreSQL beállítása

Ha még nincs kész, telepítse a PostgreSQL szervert és az ügyfelet lokálisan, például a Debian GNU / Linux rendszerre, az alábbiakban leírtakkal az apt használatával. Két cikk foglalkozik a PostgreSQL-kel - Yunis Said cikke [5] az Ubuntu telepítését tárgyalja. Ennek ellenére csak a felületet karcolja meg, míg előző cikkem a PostgreSQL és a PostGIS térinformatikai kiterjesztés kombinációjára összpontosít [6]. A leírás itt összefoglalja az adott beállításhoz szükséges lépéseket.

# apt install postgresql-13 postgresql-client-13

Ezután ellenőrizze, hogy a PostgreSQL fut-e a pg_isready parancs segítségével. Ez egy olyan segédprogram, amely a PostgreSQL csomag része.

# pg_isready
/ var / run / postgresql: 5432 - A kapcsolatok elfogadva

A fenti kimenet azt mutatja, hogy a PostgreSQL készen áll és várja a bejövő kapcsolatokat az 5432-es porton. Eltérő beállítás hiányában ez a szokásos konfiguráció. A következő lépés a Postgres UNIX felhasználó jelszavának beállítása:

# passwd Postgres

Ne feledje, hogy a PostgreSQL saját felhasználói adatbázissal rendelkezik, míg a PostgreSQL adminisztratív felhasználó, a Postgres még nem rendelkezik jelszóval. Az előző lépést a PostgreSQL Postgres felhasználó esetében is meg kell tenni:

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

Az egyszerűség kedvéért a kiválasztott jelszó csak jelszó, és a tesztelésen kívüli rendszereken egy biztonságosabb jelszóval kell helyettesíteni. A fenti parancs megváltoztatja a PostgreSQL belső felhasználói tábláját. Ügyeljen a különböző idézőjelekre - a jelszó egyetlen idézőjelbe és az SQL lekérdezés kettős idézőjelbe, hogy megakadályozza a shell tolmácsot, hogy a parancsot rosszul értékelje. Ezenkívül adjon hozzá pontosvesszőt az SQL lekérdezés után a parancs végén lévő dupla idézőjelek elé.

Ezután adminisztratív okokból csatlakozzon a PostgreSQL-hez felhasználói Postgres néven az előzőleg létrehozott jelszóval. A parancs neve psql:

$ psql

Az Apache Solr-ról a PostgreSQL adatbázishoz való csatlakozás felhasználói szolrként történik. Tehát tegyük hozzá a PostgreSQL felhasználói solr-t, és állítsunk be neki egy megfelelő jelszó-solr-ot:

$ CREATE FELHASZNÁLÓ solr WITH WASSWD 'solr';

Az egyszerűség kedvéért a kiválasztott jelszó csak a solr, és a biztonságosabb jelszó kifejezéssel kell helyettesíteni a gyártás alatt álló rendszereken.

2. lépés: Adatszerkezet előkészítése

Az adatok tárolásához és visszakereséséhez megfelelő adatbázisra van szükség. Az alábbi parancs létrehoz egy adatbázist az autókról, amelyek a felhasználói solrhoz tartoznak, és később felhasználásra kerülnek.

$ CREATE DATABASE autók TULAJDONOSAL = solr;

Ezután csatlakozzon az újonnan létrehozott adatbázis-autókhoz, mint felhasználói solr. A -d (rövid opció a -dbname számára) meghatározza az adatbázis nevét, és -U (rövid opció a -username számára) meghatározza a PostgreSQL felhasználó nevét.

$ psql -d autók -U solr

Az üres adatbázis nem hasznos, de a tartalmú strukturált táblák igen. Készítse el az asztali autók felépítését az alábbiak szerint:

$ CREATE TABLE autók (
id int,
varchar gyártmány (100),
Varchar modell (100),
leírás varchar (100),
színes varchar (50),
ár int
);

A táblagépek hat adatmezőt tartalmaznak: id (egész szám), make (100 hosszúságú karakterlánc), model (100 hosszúságú karakterlánc), leírás (100 hosszúságú karakterlánc), color (50 hosszúságú karakterlánc) és ár (egész szám). Néhány minta adat hozzáadásához adja hozzá a következő értékeket a táblagépekhez SQL utasításként:

$ INSERT INTO autók (id, márka, modell, leírás, szín, ár)
ÉRTÉKEK (1, „BMW”, „X5”, „Remek autó”, „szürke”, 45000);
$ INSERT INTO autók (id, márka, modell, leírás, szín, ár)
ÉRTÉKEK (2, „Audi”, „Quattro”, „versenyautó”, „fehér”, 30000);

Ennek eredményeként két olyan bejegyzés jelenik meg, amely egy szürke BMW X5-öt jelent, amelynek ára 45000 USD, és amelyet klassz autónak neveznek, valamint egy fehér versenyautót, az Audi Quattro-t, amelynek ára 30000 USD.

Ezután lépjen ki a PostgreSQL konzolból a \ q gombbal, vagy lépjen ki.

$ \ q

3. lépés: A PostgreSQL összekapcsolása az Apache Solr programmal

A PostgreSQL és az Apache Solr kapcsolata két szoftveren alapszik - egy Java illesztőprogram a PostgreSQL számára, az úgynevezett Java Database Connectivity (JDBC) illesztőprogram és egy kiterjesztés a Solr szerver konfigurációjára. A JDBC illesztőprogram hozzáad egy Java felületet a PostgreSQL-hez, és a Solr konfigurációjában található további bejegyzés megmondja a Solrnak, hogyan lehet csatlakozni a PostgreSQL-hez a JDBC illesztőprogram használatával.

A JDBC illesztőprogram hozzáadása felhasználói gyökérként történik az alábbiak szerint, és telepíti a JDBC illesztőprogramot a Debian csomagtárból:

# apt-get install libpostgresql-jdbc-java

Az Apache Solr oldalán egy megfelelő csomópontnak is léteznie kell. Ha még nem tetted meg, akkor UNIX-felhasználóként létre kell hozni a csomópont-autókat az alábbiak szerint:

$ bin / solr -c autók létrehozása

Ezután bontsa ki az újonnan létrehozott csomópont Solr konfigurációját. Adja hozzá az alábbi sorokat a / var / solr / data / cars / conf / solrconfig fájlba.xml:

db-data-config.xml

Ezenkívül hozzon létre egy fájlt / var / solr / data / cars / conf / data-config.xml, és tárolja benne a következő tartalmat:

A fenti sorok megfelelnek az előző beállításoknak, és meghatározzák a JDBC illesztőprogramot, megadják az 5432-es portot, amely a PostgreSQL DBMS-hez csatlakozik, mint felhasználói solr a megfelelő jelszóval, és beállítják az SQL-lekérdezést, amelyet a PostgreSQL-ből kell végrehajtani. Az egyszerűség kedvéért ez egy SELECT utasítás, amely megragadja a táblázat teljes tartalmát.

Ezután indítsa újra a Solr kiszolgálót a módosítások aktiválásához. Mivel a felhasználói gyökér végrehajtja a következő parancsot:

# systemctl restart solr

Az utolsó lépés az adatok importálása, például a Solr webes felület használatával. A csomópont választó mező kiválasztja a csomópont autókat, majd a Csomópont menüből a Dataimport bejegyzés alatt, majd a teljes import kiválasztásával a jobb oldali Parancs menüből. Végül nyomja meg az Execute gombot. Az alábbi ábra azt mutatja, hogy a Solr sikeresen indexelte az adatokat.

4. lépés: Adatok lekérdezése a DBMS-ből

Az előző cikk [3] részletesen foglalkozik az adatok lekérdezésével, az eredmény lekérésével és a kívánt kimeneti formátum kiválasztásával - CSV, XML vagy JSON. Az adatok lekérdezése a korábban tanultakhoz hasonlóan történik, és a felhasználó nem lát különbséget. A Solr minden munkát elvégez a kulisszák mögött, és kommunikál a PostgreSQL DBMS-sel, amely a kiválasztott Solr magban vagy klaszterben meghatározottak szerint csatlakozik.

A Solr használata nem változik, és a lekérdezéseket a Solr admin felületén keresztül vagy a curl vagy a wget parancssoron keresztül lehet elküldeni. Elküldi a Get kérést egy adott URL-lel a Solr szerverhez (lekérdezés, frissítés vagy törlés). A Solr a DBMS-t tárolási egységként dolgozza fel a kérést, és visszaadja a kérés eredményét. Ezután helyben utólagosan dolgozza fel a választ.

Az alábbi példa a „/ select lekérdezés kimenetét mutatja be?q = *. * ”JSON formátumban a Solr admin felületen. Az adatokat a korábban létrehozott adatbázis-kocsikról kapjuk meg.

Következtetés

Ez a cikk bemutatja, hogyan lehet lekérdezni egy PostgreSQL adatbázist az Apache Solr-ról, és elmagyarázza a megfelelő telepítést. A sorozat következő részében megtudhatja, hogyan lehet több Solr-csomópontot egyesíteni Solr-fürtré.

A szerzőkről

Jacqui Kabeta környezetvédő, lelkes kutató, oktató és mentor. Több afrikai országban dolgozott az informatikai iparban és a civil szervezetek környezetében.

Frank Hofmann informatikai fejlesztő, oktató és szerző, és inkább Berlinből, Genfből és Fokvárosból dolgozik. A Debian Csomagkezelő Könyv társszerzője a dpmb oldalon érhető el.org

Linkek és hivatkozások

Az egér és az érintőpadok görgetési irányának megfordítása a Windows 10 rendszerben
Egér és Érintőpads nemcsak a számítást könnyűvé, de hatékonyabbá és kevésbé időigényessé is teszi. Nem tudunk elképzelni egy életet ezek nélkül az esz...
Az egérmutató és a kurzor méretének, színének és sémájának módosítása a Windows 10 rendszeren
Az egérmutató és a kurzor a Windows 10 operációs rendszerben nagyon fontos szempont. Ez elmondható más operációs rendszerekről is, tehát valójában eze...
Ingyenes és nyílt forráskódú játékmotorok a Linux játékok fejlesztéséhez
Ez a cikk felsorolja azokat az ingyenes és nyílt forráskódú játékmotorokat, amelyek felhasználhatók 2D és 3D játékok fejlesztésére Linuxon. Számos ily...