Apache Solr

Sissejuhatus Apache Solrisse. 2. osa Solri päring

Sissejuhatus Apache Solrisse. 2. osa Solri päring
Apache Solr [1] on Java-s kirjutatud otsingumootori raamistik, mis põhineb Lucene otsingukogul [6]. Eelmises artiklis seadistasime Apache Solri peagi ilmuvale Debiani GNU / Linux 11-le, algatasime ühe andmesüdamiku, laadis üles näidisandmed ja näitasime, kuidas teha andmekogumis lihtsat otsingut lihtsa otsingu abil päring.

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:

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.

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 = csv

Vä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 = xml

Vä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

OpenTTD õpetus
OpenTTD on seal üks populaarsemaid ärisimulatsioonimänge. Selles mängus peate looma suurepärase transpordiettevõtte. Alustate siiski alguses umbes 190...
SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...
Lahing Wesnothi õpetuse eest
Battle for Wesnoth on üks populaarsemaid avatud lähtekoodiga strateegiamänge, mida saate praegu mängida. See mäng pole mitte ainult olnud väga pikka a...