Apache Solr

Ievads Apache Solr. 2. daļa Vaicājot par Solr

Ievads Apache Solr. 2. daļa Vaicājot par Solr
Apache Solr [1] ir meklētājprogrammu ietvars, kas rakstīts Java valodā un balstīts uz Lucene meklēšanas bibliotēku [6]. Iepriekšējā rakstā mēs izveidojām Apache Solr drīzumā iznākošajā Debian GNU / Linux 11, ierosinājām vienu datu kodolu, augšupielādējām datu piemērus un parādījām, kā veikt pamata meklēšanu datu kopā, izmantojot vienkāršu vaicājumu.

Šis ir turpinājuma raksts iepriekšējam. Mēs aplūkosim, kā precizēt vaicājumu, noformulēt sarežģītākus meklēšanas kritērijus ar dažādiem parametriem un izprast Apache Solr vaicājuma lapas dažādās tīmekļa veidlapas. Mēs arī apspriedīsim, kā pēcapstrādāt meklēšanas rezultātu, izmantojot dažādus izvades formātus, piemēram, XML, CSV un JSON.

Vaicājot Apache Solr

Apache Solr ir veidots kā tīmekļa lietojumprogramma un pakalpojums, kas darbojas fonā. Rezultāts ir tāds, ka jebkura klienta lietojumprogramma var sazināties ar Solr, nosūtot tai vaicājumus (šī raksta uzmanības centrā), manipulējot ar dokumenta kodolu, pievienojot, atjauninot un dzēšot indeksētos datus un optimizējot pamatdatus. Ir divas iespējas - izmantojot informācijas paneli / tīmekļa saskarni vai izmantojot API, nosūtot atbilstošu pieprasījumu.

Parasti tiek izmantots pirmais variants testēšanas nolūkiem, nevis regulārai piekļuvei. Zemāk redzamajā attēlā redzams Apache Solr administrēšanas lietotāja interfeisa informācijas panelis ar dažādām vaicājuma veidlapām tīmekļa pārlūkprogrammā Firefox.

Vispirms izvēlnē zem galvenā izvēles lauka izvēlieties izvēlnes ierakstu “Vaicājums”. Pēc tam informācijas panelī tiks parādīti vairāki ievades lauki šādi:

Noklikšķinot uz pogas Izpildīt vaicājumu, tiek izpildīts vēlamais pieprasījums. Praktiskus piemērus skatiet zemāk.

otrais variants, jūs varat nosūtīt pieprasījumu, izmantojot API. Tas ir HTTP pieprasījums, kuru Apache Solr var nosūtīt jebkura lietojumprogramma. Solr apstrādā pieprasījumu un atgriež atbildi. Īpašs gadījums ir savienojums ar Apache Solr, izmantojot Java API. Tas ir ticis nodots atsevišķam projektam ar nosaukumu SolrJ [7] - Java API, neprasot HTTP savienojumu.

Vaicājuma sintakse

Vaicājuma sintakse vislabāk aprakstīta [3] un [5]. Dažādie parametru nosaukumi tieši atbilst iepriekš paskaidroto veidlapu ierakstu lauku nosaukumiem. Zemāk esošajā tabulā tie ir uzskaitīti, kā arī praktiski piemēri.

Vaicājumu parametru indekss

Parametrs Apraksts Piemērs
q Apache Solr galvenais vaicājuma parametrs - lauku nosaukumi un vērtības. Viņu līdzības rādītāji dokumentē šī parametra terminus. Id: 5
automašīnas: * adilla *
*: X5
fq Ierobežojiet rezultātu kopu tikai tiem superseteta dokumentiem, kas atbilst filtram, piemēram, kas definēts, izmantojot funkciju diapazona vaicājumu parsētāju modeli
id, modelis
sākt Lapu rezultātu kompensācijas (sākums). Šī parametra noklusējuma vērtība ir 0. 5
rindas Lapas rezultātu nobīdes (beigas). Pēc noklusējuma šī parametra vērtība ir 10 15
kārtot Tas norāda to lauku sarakstu, kas atdalīti ar komatiem, pamatojoties uz kuriem jāšķiro vaicājuma rezultāti modelis asc
fl Tas norāda lauku sarakstu, kas jāatgriež par visiem rezultātu kopas dokumentiem modeli
id, modelis
wt Šis parametrs norāda atbildes rakstītāja veidu, kuru mēs vēlējāmies apskatīt. Pēc noklusējuma tā vērtība ir JSON. json
xml

Meklējumi tiek veikti, izmantojot HTTP GET pieprasījumu ar vaicājuma virkni q parametrā. Tālāk sniegtie piemēri paskaidros, kā tas darbojas. Tiek izmantots čokurošanās, lai nosūtītu vaicājumu vietējai instalētai Solr.

Turklāt varat definēt savu pieprasījumu apstrādātāju, lai vaicājuma parsētājam nosūtītu izvēles pieprasījuma parametrus, lai kontrolētu, kāda informācija tiek atgriezta.

Vaicājumu parsētāji

Apache Solr izmanto tā saukto vaicājumu parsētāju - komponentu, kas jūsu meklēšanas virkni pārveido īpašās meklētājprogrammas instrukcijās. Vaicājuma parsētājs atrodas starp jums un dokumentu, kuru meklējat.

Pakalpojumā Solr ir iekļauti dažādi parsēšanas veidi, kas atšķiras no iesniegtā vaicājuma apstrādes veida. Standarta vaicājumu parsētājs darbojas labi strukturētiem vaicājumiem, taču mazāk tolerē sintakses kļūdas. Tajā pašā laikā gan DisMax, gan paplašinātais DisMax vaicājumu parsētājs ir optimizēts dabiskām valodām līdzīgiem vaicājumiem. Tie ir paredzēti, lai apstrādātu vienkāršas lietotāju ievadītas frāzes un meklētu atsevišķus vārdus vairākos laukos, izmantojot atšķirīgu svērumu.

Turklāt Solr piedāvā arī tā sauktos funkciju vaicājumus, kas ļauj apvienot funkciju ar vaicājumu, lai izveidotu noteiktu atbilstības rādītāju. Šie parsētāji tiek nosaukti par Function Query Parser un Function Range Query Parser. Tālāk sniegtajā piemērā parādīts, ka pēdējais izvēlas visas “bmw” datu kopas (kas saglabātas datu laukā make) ar modeļiem no 318 līdz 323:

čokurošanās http: // localhost: 8983 / solr / cars / query -d '
q = izgatavot: bmw &
fq = modelis: [318 līdz 323] "

Rezultātu pēcapstrāde

Vaicājumu nosūtīšana Apache Solr ir viena daļa, bet meklēšanas rezultātu pēcapstrāde no otras. Pirmkārt, jūs varat izvēlēties starp dažādiem atbildes formātiem - no JSON līdz XML, CSV un vienkāršotu Ruby formātu. Vaicājumā vienkārši norādiet atbilstošo parametru wt. Tālāk redzamais kodu piemērs to parāda, lai visiem vienumiem izgūtu datu kopu CSV formātā, izmantojot čokurošanos ar izbēgtu &:

čokurošanās http: // localhost: 8983 / solr / cars / query?q = id: 5 \ & wt = csv

Izeja ir komatu atdalīts saraksts šādi:

Lai saņemtu rezultātu kā XML datus, bet tikai divi izejas lauki veido un modelē, izpildiet šādu vaicājumu:

čokurošanās http: // localhost: 8983 / solr / cars / query?q = *: * \ & fl = make, modelis \ & wt = xml

Izeja ir atšķirīga, un tajā ir gan atbildes galvene, gan faktiskā atbilde:

Wget saņemtos datus vienkārši izdrukā stdout. Tas ļauj pēcapstrādāt atbildi, izmantojot standarta komandrindas rīkus. Lai uzskaitītu dažus, šeit ir jq [9] JSON, xsltproc, xidel, xmlstarlet [10] XML, kā arī csvkit [11] CSV formātam.

Secinājums

Šajā rakstā ir parādīti dažādi veidi, kā nosūtīt vaicājumus Apache Solr, un paskaidrots, kā apstrādāt meklēšanas rezultātu. Nākamajā daļā jūs uzzināsiet, kā izmantot Apache Solr, meklējot relāciju datu bāzes pārvaldības sistēmā PostgreSQL.

Par autoriem

Žakijs Kabeta ir vides aizstāvis, dedzīgs pētnieks, treneris un padomdevējs. Vairākās Āfrikas valstīs viņa ir strādājusi IT nozarē un NVO vidē.

Frenks Hofmans ir IT izstrādātājs, treneris un autors un dod priekšroku strādāt no Berlīnes, Ženēvas un Keiptaunas. Debian Package Management Book līdzautors, kas pieejams vietnē dpmb.org

Saites un atsauces

Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...
Labākās komandrindas spēles Linux
Komandrinda nav tikai lielākais sabiedrotais, lietojot Linux, bet tā var būt arī izklaides avots, jo to var izmantot, lai spēlētu daudzas jautras spēl...
Labākās Linux spēļu gamepad kartēšanas lietotnes
Ja jums patīk spēlēt spēles Linux ar parastu tastatūru, nevis parasto tastatūru un peles ievades sistēmu, jums ir dažas noderīgas lietotnes. Daudzas d...