See on eelmise artikli jätkuartikkel. Käsitleme, kuidas täpsustada päringut, sõnastada keerukamad erinevate parameetritega otsingukriteeriumid ja mõista Apache Solri päringulehe erinevaid veebivorme. Samuti arutame, kuidas otsingutulemit järeltöödelda, kasutades erinevaid väljundvorminguid, nagu XML, CSV ja JSON.
Apache Solri päring
Apache Solr on loodud veebirakenduse ja teenusena, mis töötab taustal. Tulemuseks on see, et iga kliendirakendus saab Solriga suhelda, saates talle päringuid (selle artikli keskpunkt), manipuleerides dokumendi tuumaga, lisades, värskendades ja kustutades indekseeritud andmeid ning optimeerides põhiandmeid. On kaks võimalust - juhtpaneeli / veebiliidese kaudu või API abil vastava päringu saatmine.
Tavaline on kasutada esimene variant testimiseks ja mitte regulaarseks juurdepääsuks. Alloleval joonisel on näidatud Apache Solri administreerimise kasutajaliidese armatuurlaud koos veebibrauseri Firefox erinevate päringuvormidega.
Kõigepealt valige põhivaliku välja all olevast menüüst menüükirje „Päring”. Järgmisena kuvatakse armatuurlaual mitu sisendvälja järgmiselt:
- Taotluse käitleja (qt):
Määrake, millist taotlust soovite Solrile saata. Võite valida vaikepäringute käitlejate vahel “/ select” (päringu indekseeritud andmed), “/ update” (värskenda indekseeritud andmed) ja “/ delete” (eemaldage määratud indekseeritud andmed) või ise määratletud. - Päringu sündmus (q):
Määratlege väljade nimed ja väärtused, mida valida. - Filtreeri päringud (fq):
Piirake tagastatavate dokumentide alamhulka, mõjutamata dokumendi skoori. - Sortimisjärjestus (sorteerimine):
Määratlege päringutulemuste sortimisjärjestus kas tõusevaks või kahanevaks - Väljundaken (algus ja read):
Piirake väljund määratud elementidega - Väljade loend (fl):
Piirab päringuvastuses sisalduva teabe määratud väljade loendiga. - Väljundi formaat (mass):
Määrake soovitud väljundvorming. Vaikeväärtus on JSON.
Nupul Execute Query klõpsamine käivitab soovitud päringu. Praktiliste näidete saamiseks vaadake allpool.
Nagu teine variant, saate päringu saata API abil. See on HTTP-päring, mille saab Apache Solrile saata mis tahes rakendus. Solr töötleb päringut ja tagastab vastuse. Selle erijuhtum on ühenduse loomine Apache Solriga Java API kaudu. See on tellitud eraldi projektiks nimega SolrJ [7] - Java API ilma HTTP-ühendust nõudmata.
Päringu süntaks
Päringu süntaksit on kõige paremini kirjeldatud punktides [3] ja [5]. Erinevad parameetrite nimed vastavad otseselt ülalkirjeldatud vormide sisestusväljade nimedele. Alljärgnevas tabelis on need loetletud koos praktiliste näidetega.
Päringuparameetrite register
Parameeter | Kirjeldus | Näide |
---|---|---|
q | Apache Solri peamine päringuparameeter - väljade nimed ja väärtused. Nende sarnasuse skoorid dokumenteerivad selle parameetri terminitega. | Id: 5 autod: * adilla * *: X5 |
fq | Piirake tulemuskomplekti superset dokumentidega, mis sobivad filtriga, näiteks määratletud funktsioonivahemiku päringu parseri kaudu | mudel id, mudel |
algus | Lehetulemuste nihked (algus). Selle parameetri vaikeväärtus on 0. | 5 |
read | Lehe tulemuste nihked (lõpp). Selle parameetri väärtus on vaikimisi 10 | 15 |
sorteerida | See määrab komadega eraldatud väljade loendi, mille alusel päringu tulemused tuleb sortida | mudeli tõus |
fl | See määrab tulemuste komplekti kõigi dokumentide jaoks tagastatavate väljade loendi | mudel id, mudel |
wt | See parameeter tähistab vastuse kirjutaja tüüpi, mille tulemust tahtsime vaadata. Selle väärtus on vaikimisi JSON. | json xml |
Otsinguid tehakse HTTP GET päringu kaudu, parameetri q päringustringiga. Allpool toodud näited selgitavad selle toimimist. Kasutusel on curl, et saata päring kohapeal installitud Solrile.
- Too kõik andmekogumid põhiautode lokkidest http: // localhost: 8983 / solr / cars / query?q = *: *
- Too kõik andmekogumid põhiautodest, mille ID on 5 lokki http: // localhost: 8983 / solr / cars / query?q = id: 5
- Leidke välimudel kõigist põhiautode andmekogudest
1. võimalus (koos põgenenud &): lokkima http: // localhost: 8983 / solr / cars / query?q = id: * \ & fl = mudel2. võimalus (päring üksikute märkidega):
lokkima 'http: // localhost: 8983 / solr / cars / query?q = id: * & fl = mudel ' - Leidke kõik põhiautode andmekogumid hinna järgi järjestatud kahanevas järjekorras ja väljastage ainult väljad mark, mudel ja hind (versioon ühe märkega): curl http: // localhost: 8983 / solr / cars / query -d '
q = *: * &
sort = hinna kirjeldus &
fl = mark, mudel, hind ' - Leidke tuumautode esimesed viis andmekogumit hinna järgi järjestatud kahanevas järjekorras ja väljastage ainult väljad mark, mudel ja hind (versioon üksikute märkidega): curl http: // localhost: 8983 / solr / cars / query - d '
q = *: * &
read = 5 &
sort = hinna kirjeldus &
fl = mark, mudel, hind ' - Leidke põhiautode viis esimest andmekogumit hinna järgi järjestatud kahanevas järjekorras ja väljastage ainult väljad, mudel ja hind pluss selle asjakohasuse skoor (versioon üksikute märkidega): lokk http: // localhost: 8983 / solr / autod / päring -d '
q = *: * &
read = 5 &
sort = hinna kirjeldus &
fl = mark, mudel, hind, skoor ' - Tagastab kõik salvestatud väljad ja asjakohasuse skoori: curl http: // localhost: 8983 / solr / cars / query -d '
q = *: * &
fl = *, skoor '
Lisaks saate määratleda oma päringukäitleja valikuliste päringuparameetrite saatmiseks päringu parserile tagastatava teabe kontrollimiseks.
Päringu parserid
Apache Solr kasutab nn päringute parserit - komponenti, mis tõlgib teie otsingustringi otsingumootori konkreetseteks juhisteks. Teie ja teie otsitava dokumendi vahel on päringute parser.
Solril on mitmesuguseid parseritüüpe, mis erinevad saadetud päringu käsitlemise viisi poolest. Standardpäringute parser töötab hästi struktureeritud päringute korral, kuid on süntaksi vigade suhtes vähem salliv. Samal ajal on nii DisMaxi kui ka Laiendatud DisMaxi päringute parser optimeeritud loomulike keeletaoliste päringute jaoks. Need on mõeldud kasutajate sisestatud lihtsate fraaside töötlemiseks ja üksikute terminite otsimiseks mitmelt väljalt erineva kaaluga.
Lisaks pakub Solr ka nn funktsioonipäringuid, mis võimaldavad funktsiooni konkreetse asjakohasuse skoori loomiseks ühendada päringuga. Neid parsereid nimetatakse funktsioonide päringute parseriteks ja funktsioonide vahemike päringute parseriteks. Allpool toodud näide näitab, et viimane valib mudelitele 318 kuni 323 kõik bmw (salvestatud andmeväljal mark) kõik andmekogumid:
lokkima http: // localhost: 8983 / solr / cars / query -d 'q = mark: bmw &
fq = mudel: [318 kuni 323] '
Tulemuste järeltöötlus
Päringute saatmine Apache Solrile on üks osa, kuid otsingutulemite järeltöötlus teisest. Esiteks saate valida erinevate vastusevormingute vahel - alates JSON-ist kuni XML-i, CSV-ni ja lihtsustatud Ruby-vorminguni. Täpsustage päringus lihtsalt vastav parameeter wt. Alljärgnev koodinäide näitab seda kõigi üksuste andmekogumi CSV-vormingus toomiseks, kasutades curl-i koos põgenenud &:
lokkima http: // localhost: 8983 / solr / cars / query?q = id: 5 \ & wt = csvVäljund on komadega eraldatud loend järgmiselt:
Tulemuse saamiseks XML-andmetena, kuid ainult kahe väljundvälja mudeli ja mudeli järgi, käivitage järgmine päring:
lokkima http: // localhost: 8983 / solr / cars / query?q = *: * \ & fl = mark, mudel \ & wt = xmlVäljund on erinev ja sisaldab nii vastuse päist kui ka tegelikku vastust:
Wget prindib vastuvõetud andmed lihtsalt stdouti. See võimaldab teil vastuse järeltöötlust kasutada standardsete käsurea tööriistade abil. Mõne loetlemiseks sisaldab see JSON-i jaoks jq [9], xsltproc, xidel, xmlstarlet [10] XML-i jaoks ja CSV-vormingus csvkit [11].
Järeldus
See artikkel näitab erinevaid viise päringute saatmiseks Apache Solrile ja selgitab, kuidas otsingutulemit töödelda. Järgmises osas saate teada, kuidas Apache Solri abil otsida suhteliste andmebaaside haldussüsteemis PostgreSQL.
Autorite kohta
Jacqui Kabeta on keskkonnakaitsja, innukas uurija, koolitaja ja mentor. Mitmes Aafrika riigis on ta töötanud IT-tööstuses ja vabaühenduste keskkonnas.
Frank Hofmann on IT-arendaja, koolitaja ja autor ning eelistab töötada Berliinist, Genfist ja Kaplinnast. Debiani paketihalduse raamatu kaasautor, mis on saadaval veebisaidilt dpmb.org
Lingid ja viited
- [1] Apache Solr, https: // lutseen.apache.org / solr /
- [2] Frank Hofmann ja Jacqui Kabeta: sissejuhatus Apache Solrisse. 1. osa, http: // linuxhint.com
- [3] Yonik Seelay: Solri päringu süntaks, http: // yonik.com / solr / query-syntax /
- [4] Yonik Seelay: Solri õpetus, http: // yonik.com / solr-tutorial /
- [5] Apache Solr: andmete pärimine, juhendajapunkt, https: // www.juhendajakoht.com / apache_solr / apache_solr_querying_data.htm
- [6] Lucene, https: // lutseen.apache.org /
- [7] SolrJ, https: // lutseen.apache.org / solr / guide / 8_8 / using-solrj.HTML
- [8] lokk, https: // lokk.se /
- [9] jq, https: // github.com / stedolan / jq
- [10] xmlstarlet, http: // xmlstar.sourceforge.net /
- [11] csvkit, https: // csvkit.lugemisdokumendid.io / et / uusim /