Apache Solr

„Apache Solr“ įvadas. 2 dalis „Solr“ užklausa

„Apache Solr“ įvadas. 2 dalis „Solr“ užklausa
„Apache Solr“ [1] yra paieškos sistemoje parašyta „Java“ sistema, pagrįsta „Lucene“ paieškos biblioteka [6]. Ankstesniame straipsnyje mes sukūrėme „Apache Solr“ netrukus pasirodysiančiame „Debian GNU / Linux 11“, inicijavome vieną duomenų pagrindą, įkėlėme duomenų pavyzdžius ir parodėme, kaip atlikti pagrindinę paiešką duomenų rinkinyje naudojant paprastą užklausa.

Tai yra ankstesnio straipsnio tęsinys. Mes aptarsime, kaip patikslinti užklausą, suformuluoti sudėtingesnius paieškos kriterijus su skirtingais parametrais ir suprasti skirtingas „Apache Solr“ užklausos puslapio žiniatinklio formas. Taip pat aptarsime, kaip apdoroti paieškos rezultatą naudojant skirtingus išvesties formatus, pvz., XML, CSV ir JSON.

Užklausa „Apache Solr“

„Apache Solr“ sukurta kaip žiniatinklio programa ir paslauga, veikianti fone. Rezultatas yra tas, kad bet kuri kliento programa gali bendrauti su „Solr“, siųsdama jai užklausas (šio straipsnio akcentas), manipuliuodama dokumento šerdimi, įtraukdama, atnaujindama ir ištrindama indeksuotus duomenis ir optimizuodama pagrindinius duomenis. Yra dvi galimybės - per prietaisų skydelį / žiniatinklio sąsają arba naudojant API siunčiant atitinkamą užklausą.

Įprasta naudoti pirmas variantas bandymo, o ne reguliaraus priėjimo tikslais. Žemiau pateiktame paveikslėlyje parodytas prietaisų skydelis iš „Apache Solr Administration“ vartotojo sąsajos su skirtingomis užklausų formomis žiniatinklio naršyklėje „Firefox“.

Pirmiausia meniu pagrindiniame pasirinkimo lauke pasirinkite meniu įrašą „Užklausa“. Tada prietaisų skydelyje bus rodomi keli įvesties laukai:

Spustelėjus mygtuką Vykdyti užklausą, vykdoma norima užklausa. Norėdami sužinoti praktinių pavyzdžių, pažvelkite žemiau.

Kaip antrasis variantas, galite siųsti užklausą naudodami API. Tai yra HTTP užklausa, kurią bet kuri programa gali siųsti „Apache Solr“. „Solr“ apdoroja užklausą ir pateikia atsakymą. Ypatingas atvejis yra prisijungimas prie „Apache Solr“ per „Java“ API. Tai buvo perduota atskiram projektui pavadinimu „SolrJ“ [7] - „Java“ API nereikalaujant HTTP ryšio.

Užklausos sintaksė

Užklausos sintaksė geriausiai aprašyta [3] ir [5]. Skirtingi parametrų pavadinimai tiesiogiai atitinka aukščiau paaiškintų formų įvesties laukų pavadinimus. Žemiau esančioje lentelėje jie pateikiami kartu su praktiniais pavyzdžiais.

Užklausos parametrų rodyklė

Parametras apibūdinimas Pavyzdys
q Pagrindinis „Apache Solr“ užklausos parametras - laukų pavadinimai ir reikšmės. Jų panašumo balai dokumentuoja šio parametro terminus. Id: 5
automobiliai: * adilla *
*: X5
fq Apribokite rezultatų rinkinį superset dokumentais, kurie atitinka filtrą, pvz., Apibrėžtą per Funkcijų diapazono užklausų analizatorių modelis
id, modelis
pradžia Puslapio rezultatų kompensavimas (pradžia). Numatytoji šio parametro vertė yra 0. 5
eilučių Puslapio rezultatų (pabaigos) kompensavimas. Šio parametro vertė pagal numatytuosius nustatymus yra 10 15
rūšiuoti Jis nurodo kableliais atskirtų laukų sąrašą, pagal kurį turi būti rūšiuojami užklausos rezultatai modelis asc
fl Jame nurodomas laukų, kuriuos reikia grąžinti už visus rezultatų rinkinio dokumentus, sąrašas modelis
id, modelis
wt Šis parametras nurodo atsakymo rašytojo tipą, kurio rezultatą norėjome peržiūrėti. Pagal numatytuosius nustatymus tai yra JSON. Json
xml

Paieškos atliekamos per HTTP GET užklausą su užklausos eilute q parametre. Toliau pateiktuose pavyzdžiuose bus paaiškinta, kaip tai veikia. Naudojamas „curl“, norint siųsti užklausą „Solr“, kuri įdiegta vietoje.

Be to, galite nustatyti savo užklausų tvarkytuvą, kad užklausos analizatoriui būtų siunčiami pasirinktiniai užklausos parametrai, kad būtų galima kontroliuoti, kokia informacija grąžinama.

Užklausų analizatoriai

„Apache Solr“ naudoja vadinamąjį užklausų analizatorių - komponentą, kuris jūsų paieškos eilutę paverčia konkrečiomis paieškos variklio instrukcijomis. Užklausos analizatorius yra tarp jūsų ir dokumento, kurio ieškote.

„Solr“ yra įvairių analizatorių tipų, kurie skiriasi pateiktos užklausos apdorojimo būdu. Standartinis užklausų analizatorius gerai veikia struktūrinėms užklausoms, tačiau mažiau toleruoja sintaksės klaidas. Tuo pačiu metu tiek „DisMax“, tiek „Extended DisMax“ užklausų analizatorius yra optimizuoti natūralių kalbų tipo užklausoms. Jie skirti apdoroti paprastas vartotojų įvestas frazes ir ieškoti atskirų terminų keliuose laukuose, naudojant skirtingą svorį.

Be to, „Solr“ taip pat siūlo vadinamąsias funkcijų užklausas, kurios leidžia sujungti funkciją su užklausa, kad būtų sukurtas konkretus atitikimo balas. Šie analizatoriai vadinami funkcijų užklausų analizatoriumi ir funkcijų diapazono užklausų analizatoriumi. Toliau pateiktame pavyzdyje parodyta, kad paskutinis iš visų „bmw“ (saugomų duomenų lauke „make“) duomenų rinkinių su modeliais nuo 318 iki 323:

susisukti http: // localhost: 8983 / solr / cars / query -d '
q = markė: bmw &
fq = modelis: [318 iki 323] "

Po rezultatų apdorojimas

Užklausų siuntimas „Apache Solr“ yra viena dalis, bet paieškos rezultatų apdorojimas iš kitos. Pirmiausia galite pasirinkti skirtingus atsakymo formatus - nuo JSON iki XML, CSV ir supaprastinto „Ruby“ formato. Tiesiog nurodykite atitinkamą wt parametrą užklausoje. Žemiau pateiktas kodo pavyzdys rodo, kad visų elementų duomenų rinkinį CSV formatu galima gauti naudojant „curl“ su pabėgusiu &:

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

Išvestis yra kableliais atskirtas sąrašas:

Norėdami gauti rezultatą kaip XML duomenis, bet tik du išvesties laukus ir modelį, vykdykite šią užklausą:

susisukti http: // localhost: 8983 / solr / cars / query?q = *: * \ & fl = markė, modelis \ & wt = xml

Išvestis skiriasi ir joje yra atsakymo antraštė ir tikrasis atsakymas:

Wget tiesiog atspausdina gautus duomenis stdout. Tai leidžia atsakymą apdoroti naudojant standartinius komandinės eilutės įrankius. Norėdami išvardyti keletą, jS [JSON], „xsltproc“, „xidel“, „XMLstarlet“ [10], skirtų XML, taip pat „csvkit“ [11], skirtą CSV formatui.

Išvada

Šiame straipsnyje parodomi įvairūs užklausų siuntimo būdai „Apache Solr“ ir paaiškinama, kaip apdoroti paieškos rezultatus. Kitoje dalyje sužinosite, kaip naudoti „Apache Solr“ ieškant santykių duomenų bazių valdymo sistemoje „PostgreSQL“.

Apie autorius

Jacqui Kabeta yra aplinkosaugininkas, aistringas tyrinėtojas, treneris ir patarėjas. Keliose Afrikos šalyse ji dirbo IT pramonėje ir NVO aplinkoje.

Frankas Hofmannas yra IT kūrėjas, treneris, autorius ir nori dirbti iš Berlyno, Ženevos ir Keiptauno. „Debian“ paketų tvarkymo knygos, kurią galite rasti dpmb, bendraautorius.org

Nuorodos ir nuorodos

5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...
Mūšis už Wesnothą 1.13.6 Išleista plėtra
Mūšis už Wesnothą 1.13.6 išleistas praėjusį mėnesį, yra šeštasis 1 versijos kūrimo leidimas.13.„x“ serija ir ji teikia daug patobulinimų, ypač vartoto...
Kaip įdiegti „League of Legends“ „Ubuntu 14“.04
Jei esate „League of Legends“ gerbėjas, tai jums yra galimybė išbandyti „League of Legends“. Atminkite, kad LOL palaikoma „PlayOnLinux“, jei esate „Li...