Apache Solr

Uvod u Apache Solr. 2. dio Upit za rješavanje

Uvod u Apache Solr. 2. dio Upit za rješavanje
Apache Solr [1] je okvir tražilice napisan na Javi i zasnovan na knjižnici pretraživanja Lucene [6]. U prethodnom članku postavili smo Apache Solr na Debian GNU / Linux 11 koji će uskoro izaći, pokrenuli smo jednu jezgru podataka, prenijeli primjere podataka i demonstrirali kako izvršiti osnovno pretraživanje unutar skupa podataka pomoću jednostavnog upit.

Ovo je nastavak članka iz prethodnog. Objasnit ćemo kako precizirati upit, formulirati složenije kriterije pretraživanja s različitim parametrima i razumjeti različite web obrasce stranice upita Apache Solr. Također ćemo razgovarati o tome kako naknadno obraditi rezultat pretraživanja koristeći različite izlazne formate kao što su XML, CSV i JSON.

Upit Apache Solr

Apache Solr zamišljen je kao web aplikacija i usluga koja radi u pozadini. Rezultat je da bilo koja klijentska aplikacija može komunicirati s Solrom slanjem upita prema njemu (fokus ovog članka), manipuliranjem jezgrom dokumenta dodavanjem, ažuriranjem i brisanjem indeksiranih podataka te optimiziranjem osnovnih podataka. Dvije su mogućnosti - putem nadzorne ploče / web sučelja ili pomoću API-ja slanjem odgovarajućeg zahtjeva.

Uobičajeno je koristiti prva opcija radi testiranja, a ne radi redovitog pristupa. Donja slika prikazuje Nadzornu ploču iz korisničkog sučelja Apache Solr Administration s različitim obrascima upita u web pregledniku Firefox.

Prvo iz izbornika ispod polja za odabir jezgre odaberite unos u izborniku "Upit". Zatim će nadzorna ploča prikazati nekoliko polja za unos kako slijedi:

Klikom na gumb Izvrši upit pokreće se željeni zahtjev. Za praktične primjere pogledajte u nastavku.

Kao druga opcija, možete poslati zahtjev pomoću API-ja. Ovo je HTTP zahtjev koji bilo koja aplikacija može poslati Apache Solr-u. Solr obrađuje zahtjev i vraća odgovor. Poseban slučaj je povezivanje s Apache Solr putem Java API-ja. Ovo je prepušteno odvojenom projektu nazvanom SolrJ [7] - Java API bez potrebe za HTTP vezom.

Sintaksa upita

Sintaksa upita najbolje je opisana u [3] i [5]. Različiti nazivi parametara izravno odgovaraju imenima polja za unos u gore objašnjenim obrascima. Tablica u nastavku navodi ih, plus praktične primjere.

Indeks parametara upita

Parametar Opis Primjer
q Glavni parametar upita Apache Solr - imena polja i vrijednosti. Ocjene njihove sličnosti dokumentiraju izraze u ovom parametru. Id: 5
automobili: * adilla *
*: X5
fq Ograničite skup rezultata na nadskupove dokumenata koji se podudaraju s filtrom, na primjer, definirane pomoću Function Range Query Parser model
id, model
početak Odstupanja za rezultate stranica (početak). Zadana vrijednost ovog parametra je 0. 5
redaka Odstupanja za rezultate stranice (kraj). Vrijednost ovog parametra prema zadanim je postavkama 10 15
vrsta Određuje popis polja odvojenih zarezima na temelju kojih će se razvrstati rezultati upita model uzlazno
fl Određuje popis polja koja će se vratiti za sve dokumente u skupu rezultata model
id, model
tež Ovaj parametar predstavlja vrstu pisca odgovora koji smo željeli vidjeti. Vrijednost je prema zadanim postavkama JSON. json
xml

Pretrage se vrše putem HTTP GET zahtjeva s nizom upita u parametru q. Primjeri u nastavku pojasnit će kako ovo funkcionira. U upotrebi je curl za slanje upita Solr-u koji je instaliran lokalno.

Nadalje, možete definirati vlastiti rukovatelj zahtjevima za slanje neobaveznih parametara zahtjeva u parser upita kako bi kontrolirao koje se informacije vraćaju.

Upit za raščlanjivanje podataka

Apache Solr koristi takozvani parser upita - komponentu koja prevodi vaš niz pretraživanja u određene upute za tražilicu. Analizator upita stoji između vas i dokumenta koji tražite.

Solr dolazi s raznim vrstama raščlanjivača koji se razlikuju u načinu na koji se obrađuje poslani upit. Standardni analizator upita dobro funkcionira za strukturirane upite, ali je manje tolerantan prema sintaksnim pogreškama. Istodobno su i DisMax i Extended DisMax Query Parser optimizirani za upite slične prirodnom jeziku. Dizajnirani su za obradu jednostavnih fraza koje su unijeli korisnici i za traženje pojedinačnih pojmova u nekoliko polja koristeći različito ponderiranje.

Nadalje, Solr također nudi takozvane Function Query (Upiti funkcije) koji omogućuju kombiniranje funkcije s upitom kako bi se generirala određena ocjena relevantnosti. Ti se analizatori nazivaju Function Query Parser i Function Range Query Parser. Primjer u nastavku prikazuje potonji za odabir svih skupova podataka za "bmw" (pohranjene u podatkovnom polju make) s modelima od 318 do 323:

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

Naknadna obrada rezultata

Slanje upita Apache Solr je jedan dio, ali drugi obrađuje rezultat pretraživanja. Prvo, možete birati između različitih formata odgovora - od JSON-a do XML-a, CSV-a i pojednostavljenog Ruby formata. Jednostavno navedite odgovarajući wt parametar u upitu. Primjer koda u nastavku to pokazuje za dohvaćanje skupa podataka u CSV formatu za sve stavke koje koriste curl s escapeed &:

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

Izlaz je popis odvojen zarezom kako slijedi:

Da biste dobili rezultat kao XML podatke, ali dva izlazna polja čine i modeliraju, pokrenite sljedeći upit:

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

Izlaz je različit i sadrži i zaglavlje odgovora i stvarni odgovor:

Wget jednostavno ispisuje primljene podatke na stdout. To vam omogućuje naknadnu obradu odgovora pomoću standardnih alata naredbenog retka. Da ih nabrojimo nekoliko, sadrži jq [9] za JSON, xsltproc, xidel, xmlstarlet [10] za XML, kao i csvkit [11] za CSV format.

Zaključak

Ovaj članak prikazuje različite načine slanja upita u Apache Solr i objašnjava kako obraditi rezultat pretraživanja. U sljedećem ćete dijelu naučiti kako koristiti Apache Solr za pretraživanje u PostgreSQL-u, relacijskom sustavu upravljanja bazama podataka.

O autorima

Jacqui Kabeta je ekologinja, strastveni istraživač, trener i mentor. U nekoliko afričkih zemalja radila je u IT industriji i okruženjima nevladinih organizacija.

Frank Hofmann je informatički programer, trener i autor, a radije radi iz Berlina, Ženeve i Cape Towna. Koautor knjige za upravljanje paketima Debian dostupne na dpmb.org

Poveznice i reference

Lijevi gumb miša ne radi u sustavu Windows 10
Ako s prijenosnim računalom ili stolnim računalom koristite namjenski miš, ali lijevi gumb miša ne radi u sustavu Windows 10/8/7 iz nekog razloga evo ...
Pokazivač skače ili se slučajno pomiče dok tipkate u sustavu Windows 10
Ako ustanovite da kursor miša sam skače ili se pomiče automatski, nasumično dok tipkate u Windows prijenosnom računalu ili računalu, neki od ovih prij...
Kako obrnuti smjer pomicanja miša i dodirnih pločica u sustavu Windows 10
Miš i Dodirna pločaRačunarstvo ne samo da olakšava, već i učinkovitije i oduzima puno vremena. Ne možemo zamisliti život bez ovih uređaja, ali činjeni...