Apache Solr

Johdatus Apache Solriin. Osa 2 Solr-kysely

Johdatus Apache Solriin. Osa 2 Solr-kysely
Apache Solr [1] on Java-kielellä kirjoitettu hakukehys, joka perustuu Lucene-hakukirjastoon [6]. Aikaisemmassa artikkelissa asetimme Apache Solrin pian julkaistavaan Debian GNU / Linux 11: een, aloitimme yhden tietosydämen, lähetimme esimerkkitietoja ja osoitimme, kuinka tehdään perushaku tietojoukossa yksinkertaisen kysely.

Tämä on jatkoartikkeli edelliseen. Käsittelemme kyselyn tarkentamista, monimutkaisempien hakukriteerien muotoilua erilaisilla parametreilla ja ymmärrämme Apache Solr -kyselysivun erilaisia ​​verkkolomakkeita. Keskustelemme myös siitä, miten hakutulos voidaan jälkikäsitellä käyttämällä erilaisia ​​tulostusmuotoja, kuten XML, CSV ja JSON.

Apache Solrin kysely

Apache Solr on suunniteltu verkkosovellukseksi ja palveluksi, joka toimii taustalla. Tuloksena on, että mikä tahansa asiakassovellus voi olla yhteydessä Solriin lähettämällä kyselyjä sille (tämän artikkelin painopiste), manipuloimalla asiakirjan ydintä lisäämällä, päivittämällä ja poistamalla indeksoituja tietoja ja optimoimalla ydintiedot. On olemassa kaksi vaihtoehtoa - kojelaudan / verkkokäyttöliittymän kautta tai API: n avulla lähettämällä vastaava pyyntö.

On yleistä käyttää ensimmäinen vaihtoehto testausta varten eikä säännöllistä käyttöä varten. Alla olevassa kuvassa näkyy Apache Solr Administration -käyttöliittymän hallintapaneeli Firefox-selaimen eri kyselylomakkeilla.

Valitse ensin ydinvalintakentän alla olevasta valikosta valikkokohta "Kysely". Seuraavaksi hallintapaneeli näyttää useita syöttökenttiä seuraavasti:

Napsauttamalla Suorita kysely -painiketta suoritetaan haluttu pyyntö. Katso käytännön esimerkkejä alla.

Kuten toinen vaihtoehto, voit lähettää pyynnön sovellusliittymän avulla. Tämä on HTTP-pyyntö, joka voidaan lähettää Apache Solrille millä tahansa sovelluksella. Solr käsittelee pyynnön ja palauttaa vastauksen. Tämän erityistapaus on yhteyden muodostaminen Apache Solriin Java-sovellusliittymän kautta. Tämä on ulkoistettu erilliselle projektille nimeltä SolrJ [7] - Java-sovellusliittymä ilman HTTP-yhteyttä.

Kyselyn syntaksia

Kyselyn syntaksia kuvataan parhaiten kohdissa [3] ja [5]. Eri parametrien nimet vastaavat suoraan edellä selitettyjen lomakkeiden syöttökenttien nimiä. Alla olevassa taulukossa on lueteltu ne sekä käytännön esimerkkejä.

Kyselyparametrien hakemisto

Parametri Kuvaus Esimerkki
q Apache Solrin pääkyselyparametri - kenttien nimet ja arvot. Niiden samankaltaisuuspisteet dokumentoivat tämän parametrin termejä. Id: 5
autot: * adilla *
*: X5
fq Rajoita tulosjoukko superset-asiakirjoihin, jotka vastaavat suodatinta, esimerkiksi määritettynä Function Range Query Parser -toiminnon avulla malli-
id, malli
alkaa Sivutulosten siirtymät (alku). Tämän parametrin oletusarvo on 0. 5
riviä Sivutulosten (loppu) siirtymät. Tämän parametrin arvo on oletusarvoisesti 10 15
järjestellä Se määrittää pilkuilla erotettujen kenttien luettelon, jonka perusteella kyselytulokset on lajiteltava malli asc
fl Se määrittää luettelon palautettavista kentistä kaikista tulosjoukon asiakirjoista malli-
id, malli
wt Tämä parametri edustaa vastauksen kirjoittajan tyyppiä, jonka halusimme tarkastella tulosta. Tämän arvo on oletusarvoisesti JSON. json
xml

Haut tehdään HTTP GET -pyynnön kautta q-parametrin kyselymerkkijonolla. Alla olevat esimerkit selventävät tämän toimintaa. Käytössä on curl lähettää kysely paikallisesti asennetulle Solrille.

Lisäksi voit määrittää oman pyynnön käsittelijän lähettämään valinnaiset kyselyparametrit kyselyn jäsentäjälle palautettavien tietojen hallitsemiseksi.

Kyselyjäsenet

Apache Solr käyttää niin sanottua kyselyn jäsentäjää - komponenttia, joka muuntaa hakumerkkijonosi hakukoneen erityisiksi ohjeiksi. Kyselyn jäsennin seisoo sinun ja etsimäsi asiakirjan välillä.

Solrissa on useita jäsennintyyppejä, jotka eroavat toisistaan ​​lähetetyn kyselyn käsittelytavoissa. Standardi kyselyn jäsennin toimii hyvin strukturoiduissa kyselyissä, mutta on vähemmän suvaitsevainen syntaksivirheiden suhteen. Samaan aikaan sekä DisMax että Extended DisMax Query Parser on optimoitu luonnollisen kielen kaltaisille kyselyille. Ne on suunniteltu käsittelemään käyttäjien kirjoittamia yksinkertaisia ​​lauseita ja etsimään yksittäisiä termejä useilta kentiltä eri painotuksella.

Lisäksi Solr tarjoaa myös ns. Toimintokyselyjä, jotka mahdollistavat funktion yhdistämisen kyselyyn tietyn relevanssipisteen luomiseksi. Nämä jäsennimet on nimetty toimintokyselyjen jäsentäjiksi ja toimintojen kyselyjen jäsentäjiksi. Alla oleva esimerkki osoittaa, että jälkimmäinen valitsee kaikki "bmw" -tietojoukot (tallennetut tietokenttään make) malleilla 318 - 323:

käpristyminen http: // localhost: 8983 / solr / cars / query -d '
q = merkki: bmw &
fq = malli: [318 - 323] '

Tulosten jälkikäsittely

Kyselyjen lähettäminen Apache Solrille on yksi osa, mutta hakutulosten jälkikäsittely toisesta. Ensinnäkin voit valita eri vastausmuotojen välillä - JSON: sta XML: ään, CSV: hen ja yksinkertaistettuun Ruby-muotoon. Määritä vain vastaava wt-parametri kyselyssä. Alla oleva koodiesimerkki osoittaa tämän, kun haetaan tietojoukko CSV-muodossa kaikille kohteille, jotka käyttävät käpristystä pakotetun & kanssa:

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

Tulos on pilkuilla erotettu luettelo seuraavasti:

Suorita seuraava kysely saadaksesi tuloksen XML-datana, mutta vain kaksi tuotekenttää, jotka muodostavat ja mallivat:

käpristää http: // localhost: 8983 / solr / cars / query?q = *: * \ & fl = merkki, malli \ & wt = xml

Lähtö on erilainen ja sisältää sekä vastausotsikon että todellisen vastauksen:

Wget yksinkertaisesti tulostaa vastaanotetut tiedot vakiona. Tämän avulla voit jälkikäsitellä vastauksen tavallisilla komentorivityökaluilla. Muutama luettelo sisältää tämän: jq [9] JSON: lle, xsltproc, xidel, xmlstarlet [10] XML: lle sekä csvkit [11] CSV-muodolle.

Johtopäätös

Tässä artikkelissa esitetään erilaisia ​​tapoja lähettää kyselyjä Apache Solrille ja selitetään, miten hakutulosta käsitellään. Seuraavassa osassa opit käyttämään Apache Solr -ohjelmaa relaatiotietokannan hallintajärjestelmässä PostgreSQL.

Tietoja kirjoittajista

Jacqui Kabeta on ympäristönsuojelija, innokas tutkija, kouluttaja ja mentori. Hän on työskennellyt useissa Afrikan maissa IT-teollisuudessa ja kansalaisjärjestöjen ympäristössä.

Frank Hofmann on tietotekniikan kehittäjä, kouluttaja ja kirjailija ja mieluummin työskentelee Berliinistä, Genevestä ja Kapkaupungista. Debian Package Management Book -kirjan kirjoittaja, saatavana osoitteesta dpmb.org

Linkit ja viitteet

Parhaat Linux-peliohjaimen kartoitussovellukset
Jos haluat pelata pelejä Linuxissa peliohjaimella tyypillisen näppäimistön ja hiiren syöttöjärjestelmän sijaan, on sinulle hyödyllisiä sovelluksia. Mo...
Hyödyllisiä työkaluja Linux-pelaajille
Jos haluat pelata pelejä Linuxissa, on todennäköistä, että olet käyttänyt sovelluksia ja apuohjelmia, kuten Wine, Lutris ja OBS Studio, pelikokemuksen...
HD Remastered Games for Linux that Never had a Linux Release Earlier
Many game developers and publishers are coming up with HD remaster of old games to extend the life of franchise, please fans requesting compatibility ...