Apache Solr

Uvod v Apache Solr. 2. del Poizvedba Solr

Uvod v Apache Solr. 2. del Poizvedba Solr
Apache Solr [1] je ogrodje iskalnika, napisano v Javi in ​​temelji na iskalni knjižnici Lucene [6]. V prejšnjem članku smo na kmalu izdanem Debian GNU / Linux 11 nastavili Apache Solr, sprožili eno podatkovno jedro, naložili vzorčne podatke in pokazali, kako opraviti osnovno iskanje v naboru podatkov s preprostim poizvedba.

To je nadaljevalni članek k prejšnjemu. Pokrili bomo, kako izboljšati poizvedbo, oblikovati bolj zapletena merila iskanja z različnimi parametri in razumeti različne spletne obrazce strani poizvedbe Apache Solr. Razpravljali bomo tudi o tem, kako naknadno obdelati rezultat iskanja z različnimi izhodnimi formati, kot so XML, CSV in JSON.

Poizvedovanje po Apache Solr

Apache Solr je zasnovan kot spletna aplikacija in storitev, ki deluje v ozadju. Rezultat je, da lahko katera koli odjemalska aplikacija komunicira s Solrjem tako, da mu pošilja poizvedbe (poudarek tega članka), manipulira z jedrom dokumenta z dodajanjem, posodabljanjem in brisanjem indeksiranih podatkov ter optimizacijo osnovnih podatkov. Obstajata dve možnosti - prek nadzorne plošče / spletnega vmesnika ali z uporabo API-ja s pošiljanjem ustrezne zahteve.

Običajno je uporabiti prva možnost za namene testiranja in ne za reden dostop. Spodnja slika prikazuje nadzorno ploščo iz uporabniškega vmesnika za upravljanje Apache Solr z različnimi obrazci za poizvedbe v spletnem brskalniku Firefox.

Najprej v meniju pod izbirnim poljem jedra izberite vnos v meniju »Poizvedba«. Nato bo nadzorna plošča prikazala več vnosnih polj, kot sledi:

S klikom na gumb Izvedi poizvedbo zaženete želeno zahtevo. Za praktične primere si oglejte spodaj.

Kot druga možnost, zahtevo lahko pošljete z API-jem. To je zahteva HTTP, ki jo lahko pošlje Apache Solr katera koli aplikacija. Solr obdela zahtevo in vrne odgovor. Poseben primer tega je povezava z Apache Solr prek Java API. To je bilo dodeljeno ločenemu projektu SolrJ [7] - Java API brez potrebe po povezavi HTTP.

Sintaksa poizvedbe

Sintaksa poizvedbe je najbolje opisana v [3] in [5]. Imena različnih parametrov se neposredno ujemajo z imeni vnosnih polj v obrazcih, razloženih zgoraj. Spodnja tabela jih našteva in praktične primere.

Indeks parametrov poizvedbe

Parameter Opis Primer
q Glavni parameter poizvedbe Apache Solr - imena polj in vrednosti. Njihove podobnosti ocenjujejo izraze v tem parametru. Id: 5
avtomobili: * adilla *
*: X5
fq Omejite nabor rezultatov na nadnabojene dokumente, ki se ujemajo s filtrom, na primer določen s pomočjo razčlenjevalnika poizvedb funkcije model
id, model
začetek Odmiki za rezultate strani (začetek). Privzeta vrednost tega parametra je 0. 5
vrstice Odmiki za rezultate strani (konec). Vrednost tega parametra je privzeto 10 15
razvrsti Določa seznam polj, ločenih z vejicami, na podlagi katerih bodo razvrščeni rezultati poizvedbe model asc
fl Določa seznam polj, ki jih je treba vrniti za vse dokumente v naboru rezultatov model
id, model
mas Ta parameter predstavlja vrsto zapisovalnika odzivov, za katerega smo želeli videti rezultat. Vrednost tega je privzeto JSON. json
xml

Iskanja se izvajajo prek zahteve HTTP GET z nizom poizvedbe v parametru q. Spodnji primeri bodo pojasnili, kako to deluje. V uporabi je curl za pošiljanje poizvedbe Solr, ki je nameščen lokalno.

Poleg tega lahko določite svojega lastnega upravljavca zahtev, da pošlje neobvezne parametre zahteve v razčlenjevalnik poizvedb, da nadzira, katere informacije se vrnejo.

Razčlenjevalniki poizvedb

Apache Solr uporablja tako imenovani razčlenjevalnik poizvedb - komponento, ki prevede vaš iskalni niz v posebna navodila za iskalnik. Razčlenjevalnik poizvedb stoji med vami in dokumentom, ki ga iščete.

Solr prihaja z različnimi vrstami razčlenjevalnikov, ki se razlikujejo po načinu obdelave poslane poizvedbe. Standardni razčlenjevalnik poizvedb dobro deluje za strukturirane poizvedbe, vendar je manj strpen do sintaksnih napak. Hkrati sta razčlenjevalnik poizvedb DisMax in Extended DisMax optimiziran za poizvedbe, podobne naravnemu jeziku. Zasnovani so tako, da obdelujejo preproste besedne zveze, ki jih vnesejo uporabniki, in iščejo posamezne izraze v več poljih z različnimi utežmi.

Poleg tega Solr ponuja tudi tako imenovane poizvedbe o funkcijah, ki omogočajo, da se funkcija kombinira s poizvedbo, da se ustvari določena ocena ustreznosti. Ti razčlenjevalniki se imenujejo Function Query Parser in Function Range Query Parser. Spodnji primer prikazuje slednjega, da izbere vse nabore podatkov za “bmw” (shranjene v podatkovnem polju make) z modeli od 318 do 323:

curl http: // localhost: 8983 / solr / cars / query -d '
q = znamka: bmw &
fq = model: [318 DO 323] '

Naknadna obdelava rezultatov

Pošiljanje poizvedb Apache Solr je en del, drugi rezultat pa je naknadna obdelava rezultata iskanja. Najprej lahko izbirate med različnimi oblikami odzivov - od JSON do XML, CSV in poenostavljeno obliko Ruby. V poizvedbi preprosto določite ustrezen parameter wt. Spodnji primer kode prikazuje to za pridobivanje nabora podatkov v obliki CSV za vse elemente, ki uporabljajo curl z ubežano &:

curl http: // localhost: 8983 / solr / cars / query?q = id: 5 \ & wt = csv

Rezultat je ločen z vejicami seznam, kot sledi:

Če želite rezultat prejeti kot podatke XML, vendar sta dve izhodni polji make in model samo, zaženite naslednjo poizvedbo:

curl http: // localhost: 8983 / solr / cars / query?q = *: * \ & fl = znamka, model \ & wt = xml

Izhod je drugačen in vsebuje tako glavo odziva kot tudi dejanski odziv:

Wget preprosto natisne prejete podatke na stdout. To vam omogoča naknadno obdelavo odziva s standardnimi orodji ukazne vrstice. Če jih naštejemo nekaj, vsebuje jq [9] za JSON, xsltproc, xidel, xmlstarlet [10] za XML in csvkit [11] za format CSV.

Zaključek

Ta članek prikazuje različne načine pošiljanja poizvedb Apache Solr in razlaga, kako obdelati rezultat iskanja. V naslednjem delu boste izvedeli, kako uporabljati Apache Solr za iskanje v PostgreSQL, relacijskem sistemu za upravljanje baz podatkov.

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

Namestite najnovejšo strategijo igre OpenRA v Ubuntu Linux
OpenRA je Libre / Free Real Time strateški stroj, ki poustvarja zgodnje igre Westwood, kot je klasična Command & Conquer: Red Alert. Porazdeljeni modi...
Namestite najnovejši Dolphin Emulator za Gamecube & Wii v Linux
Dolphin Emulator vam omogoča igranje izbranih iger Gamecube in Wii na osebnih računalnikih Linux (PC). Dolphin Emulator je prosto dostopen in odprtok...
Kako uporabljati GameConqueror Cheat Engine v Linuxu
Članek zajema vodnik o uporabi varalnice GameConqueror v Linuxu. Številni uporabniki, ki igrajo igre v sistemu Windows, pogosto uporabljajo aplikacijo...