Apache Solr

Bevezetés az Apache Solr-ba. 2. rész Solr lekérdezése

Bevezetés az Apache Solr-ba. 2. rész Solr lekérdezése
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ő cikkben felállítottuk az Apache Solr programot a hamarosan megjelenő Debian GNU / Linux 11 rendszeren, elindítottunk egyetlen adatmagot, feltöltöttünk példamutatókat és bemutattuk, hogyan lehet egyszerű keresést végezni az adatsoron belül egy egyszerű lekérdezés.

Ez az előző cikk folytatása. Foglalkozunk a lekérdezés finomításával, összetettebb keresési feltételek megfogalmazásával, különböző paraméterekkel, valamint az Apache Solr lekérdező oldal különböző webes űrlapjainak megértésével. Ezenkívül megvitatjuk a keresési eredmények utólagos feldolgozását különböző kimeneti formátumok, például XML, CSV és JSON használatával.

Az Apache Solr lekérdezése

Az Apache Solr webalkalmazásként és szolgáltatásként működik, amely a háttérben fut. Ennek eredményeként bármely ügyfélalkalmazás kommunikálhat a Solrral, lekérdezések küldésével (a cikk középpontjában), a dokumentummag manipulálásával indexelt adatok hozzáadásával, frissítésével és törlésével, valamint az alapadatok optimalizálásával. Két lehetőség van - irányítópulton / webes felületen keresztül, vagy egy API használatával a megfelelő kérés elküldésével.

Gyakori a első lehetőség tesztelés céljából és nem rendszeres hozzáférés céljából. Az alábbi ábra az Apache Solr Administration felhasználói felület irányítópultját mutatja a Firefox böngésző különböző lekérdezési űrlapjaival.

Először válassza a fő választó mező alatti menüből a „Query” menüpontot. Ezután az irányítópult több beviteli mezőt jelenít meg az alábbiak szerint:

A Lekérdezés végrehajtása gombra kattintva futtatja a kívánt kérést. Gyakorlati példákért tekintse meg alább.

Mivel a második lehetőség, kérelmet küldhet egy API segítségével. Ez egy HTTP kérés, amelyet bármely alkalmazás elküldhet az Apache Solr számára. A Solr feldolgozza a kérést, és visszaadja a választ. Ennek egy speciális esete a Java API-n keresztül történő kapcsolódás az Apache Solr-hoz. Ezt kiszervezték egy külön projektnek, a SolrJ [7] nevű Java API-nak, HTTP-kapcsolat nélkül.

Lekérdezés szintaxisa

A lekérdezés szintaxisa a [3] és [5] pontokban található. A különböző paraméternevek közvetlenül megfelelnek a fent ismertetett űrlapok beviteli mezőinek nevével. Az alábbi táblázat felsorolja őket, valamint gyakorlati példákat.

Lekérdezési paraméterek indexe

Paraméter Leírás Példa
q Az Apache Solr fő lekérdezési paramétere - a mezők neve és értéke. A hasonlósági pontszámok dokumentálják az ebben a paraméterben szereplő kifejezéseket. Id: 5
autók: * adilla *
*: X5
fq Szűkítse az eredménykészletet a szűrőnek megfelelő superset dokumentumokra, például a Function Range Query Parser segítségével modell
id, modell
Rajt Az oldal eredményeinek eltolódásai (kezdet). Ennek a paraméternek az alapértelmezett értéke 0. 5
sorok Az oldal eredményeinek eltolódásai (vége). Ennek a paraméternek az értéke alapértelmezés szerint 10 15
fajta Megadja a vesszőkkel elválasztott mezők listáját, amelyek alapján a lekérdezés eredményeit rendezni kell modell asc
fl Megadja az eredményhalmaz összes dokumentumához visszatérítendő mezők listáját modell
id, modell
wt Ez a paraméter a válaszíró típusát jelöli, amelynek eredményét meg akartuk tekinteni. Ennek értéke alapértelmezés szerint JSON. json
xml

A kereséseket HTTP GET kéréssel hajtják végre, a q paraméterben található lekérdezési karakterlánccal. Az alábbi példák tisztázzák ennek működését. A curl használatával a lekérdezést el lehet küldeni a helyileg telepített Solr-nak.

Ezenkívül meghatározhatja saját kéréskezelőjét, hogy az opcionális kérési paramétereket elküldje a lekérdező elemzőnek annak érdekében, hogy ellenőrizze, milyen információkat küld vissza.

Lekérdező elemzők

Az Apache Solr úgynevezett lekérdezési elemzőt használ - egy olyan összetevőt, amely a keresési karakterláncot a keresőmotorhoz adott utasításokká alakítja át. A lekérdezés elemzője áll Ön és a keresett dokumentum között.

A Solr különféle elemző típusokkal rendelkezik, amelyek eltérnek a beküldött lekérdezés kezelésétől. A Standard Query Parser jól működik strukturált lekérdezéseknél, de kevésbé toleráns a szintaktikai hibákkal szemben. Ugyanakkor a DisMax és az Extended DisMax Query Parser is optimalized for natural language-like queries. Úgy tervezték, hogy feldolgozzák a felhasználók által bevitt egyszerű kifejezéseket, és különféle súlyozással keressenek egyedi kifejezéseket több mezőben.

Ezenkívül a Solr úgynevezett függvény lekérdezéseket is kínál, amelyek lehetővé teszik egy függvény lekérdezéssel történő kombinálását egy adott relevancia pontszám előállítása érdekében. Ezeket a elemzőket Function Query Parser és Function Range Query Parser neveknek nevezik. Az alábbi példa azt mutatja, hogy ez utóbbi választja ki a „bmw” összes adatsort (az adatmezőben tárolva) a 318 és 323 közötti modellekkel:

göndörítés http: // localhost: 8983 / solr / cars / query -d '
q = gyártmány: bmw &
fq = modell: [318 - 323] "

Az eredmények utófeldolgozása

Az egyik rész a lekérdezések küldése az Apache Solr-nak, de a keresési eredmények utólagos feldolgozása a másiktól. Először választhat a különböző válaszformátumok között - a JSON-tól az XML-ig, a CSV-ig és az egyszerűsített Ruby-formátumig. Egyszerűen adja meg a lekérdezésben a megfelelő wt paramétert. Az alábbi kódpélda ezt szemlélteti az adatkészlet CSV-formátumban történő lekéréséhez az összes elemhez curl-t használva a megszabadult &:

göndörítés http: // localhost: 8983 / solr / cars / query?q = id: 5 \ & wt = csv

A kimenet vesszővel elválasztott lista az alábbiak szerint:

Az eredmény XML adatként történő megkapása, de csak a két kimeneti mező készítése és modellezése, futtassa a következő lekérdezést:

göndörítés http: // localhost: 8983 / solr / cars / query?q = *: * \ & fl = gyártmány, modell \ & wt = xml

A kimenet különbözik, és tartalmazza a válasz fejlécét és a tényleges választ is:

A Wget egyszerűen kinyomtatja a beérkezett adatokat az stdout-ra. Ez lehetővé teszi, hogy a parancsot standard parancssori eszközökkel utólag feldolgozza. Néhányat felsorolva, ez tartalmazza a JSON-hoz tartozó jq [9] -et, XML-hez az xsltproc, xidel, xmlstarlet [10], valamint a CSV-formátumhoz tartozó csvkit [11] -et.

Következtetés

Ez a cikk bemutatja a lekérdezések küldésének különböző módjait az Apache Solr számára, és elmagyarázza, hogyan kell feldolgozni a keresési eredményt. A következő részben megtudhatja, hogyan kell az Apache Solr segítségével keresni a PostgreSQL-ben, egy relációs adatbázis-kezelő rendszerben.

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

Microsoft Sculpt Touch vezeték nélküli egér áttekintés
Nemrég olvastam a Microsoft Sculpt Touch vezeték nélküli egér és úgy döntött, hogy megveszi. Egy ideig használat után úgy döntöttem, hogy megosztom ve...
AppyMouse képernyős Trackpad és egérmutató a Windows táblagépekhez
A táblagép-felhasználók gyakran hiányolják az egérmutatót, különösen akkor, ha szokták használni a laptopokat. Az érintőképernyős okostelefonok és táb...
Az egér középső gombja nem működik a Windows 10 rendszerben
A középső egérgomb segít átgörgetni a hosszú weboldalakat és a sok adatot tartalmazó képernyőket. Ha ez leáll, akkor a billentyűzet segítségével görge...