Mis on Apache Solr
Apache Solr on üks populaarsemaid NoSQL-i andmebaase, mida saab kasutada andmete salvestamiseks ja nende pärimiseks peaaegu reaalajas. See põhineb Apache Lucene'il ja on kirjutatud Java keeles. Nii nagu Elasticsearch, toetab see andmebaasipäringuid REST API-de kaudu. See tähendab, et saame kasutada lihtsaid HTTP-kõnesid ja kasutada selliseid HTTP-meetodeid nagu GET, POST, PUT, DELETE jne. andmetele juurdepääsemiseks. See annab ka võimaluse saada andmeid XML või JSON kujul REST API-de kaudu.
Arhitektuur: Apache Solr
Enne kui hakkame Apache Solriga koostööd tegema, peame mõistma komponente, millest Apache Solr koosneb. Vaatame mõningaid selle komponente:
Apache Solri arhitektuur
Pange tähele, et ülaltoodud joonisel on näidatud ainult Solri peamised komponendid. Mõistame ka nende funktsionaalsust siin:
- Taotluste käitlejad: Kliendi Solrile esitatud päringuid haldab päringute töötleja. Taotlus võib olla mis tahes, alates uue kirje lisamisest, et värskendada Solris indeksit. Töötlejad tuvastavad päringu tüübi päringute kaardistamisel kasutatud HTTP-meetodi järgi.
- Otsingu komponent: See on üks olulisemaid komponente, mille poolest Solr on tuntud. Otsingukomponent hoolitseb otsinguga seotud toimingute, näiteks hägususe, õigekirjakontrolli, terminipäringute jms eest.
- Päringu parser: See on komponent, mis sõelub päringu, mille klient päringu käitlejale edastab, ja jagab päringu mitmeks osaks, millest aluseks olev mootor saab aru
- Vastuse kirjutaja: See komponent vastutab mootorile edastatud päringute väljundvormingu haldamise eest. Response Writer võimaldab meil pakkuda väljundit erinevates vormingutes, nagu XML, JSON jne.
- Analüsaator / Tokenizer: Lucene Engine mõistab päringuid mitme märgina. Solr analüüsib päringut, jagab selle mitmeks märgiks ja edastab selle Lucene mootorile.
- Värskendustaotluse protsessor: Kui päring on käivitatud ja see täidab selliseid toiminguid nagu indeksi ja sellega seotud andmete värskendamine, vastutab värskendustaotluse protsessori komponent registris olevate andmete haldamise ja nende muutmise eest.
Apache Solriga alustamine
Apache Solri kasutamise alustamiseks peab see olema arvutisse installitud. Selleks lugege artiklit Apache Solri installimine Ubuntu.
Veenduge, et teil oleks aktiivne Solri install, kui soovite proovida näiteid, mida me hiljem õppetükis esitame, ja administraatori lehele pääseb kohalikul hostil:
Apache Solri koduleht
Andmete sisestamine
Alustuseks kaalume Solri kollektsiooni, mida kutsume linux_hint_collection. Seda kogu pole vaja selgesõnaliselt määratleda, kuna esimese objekti sisestamisel tehakse kogu automaatselt. Proovime oma esimest REST-i API-kõnet uue objekti sisestamiseks nimega kogusse linux_hint_collection.
Andmete sisestamine
curl -X POST -H 'Sisu-tüüp: rakendus / json''http: // localhost: 8983 / solr / linux_hint_collection / update / json / docs' --data-binaarne '
"id": "iduye",
"nimi": "Shubham"
'
Selle käsuga saame tagasi:
Käsk andmete Solrisse sisestamiseks
Andmeid saab sisestada ka varem vaadatud Solri kodulehe abil. Proovime seda siin, et asjad oleksid selged:
Sisestage andmed Solri kodulehe kaudu
Kuna Solril on suurepärane viis suhtlemiseks HTTP RESTful API-dega, demonstreerime nüüdsest DB-de interaktsiooni samade API-de abil ega keskendu eriti Solri veebilehe kaudu andmete sisestamisele.
Lisage kõik kogud
Saame loetleda kõik Apache Solri kogud ka REST API abil. Siin on käsk, mida saame kasutada:
Lisage kõik kogud
lokkima http: // localhost: 8983 / solr / admin / kogu?toimingud = LIST & wt = jsonVaatame selle käsu väljundit:
Näeme siin kahte kollektsiooni, mis on olemas meie Solri installatsioonis.
Hangi objekt ID järgi
Vaatame nüüd, kuidas saame konkreetse ID-ga Solri kollektsiooni andmeid. Siin on käsk REST API:
Hangi objekt ID järgi
lokkima http: // localhost: 8983 / solr / linux_hint_collection / get?id = iduyeSelle käsuga saame tagasi:
Hangi kõik andmed
Meie viimases REST API-s küsisime andmeid konkreetse ID abil. Seekord saame kõik andmed meie Solri kogusse.
Hangi objekt ID järgi
lokkimine http: // localhost: 8983 / solr / linux_hint_collection / select?q = *: *Selle käsuga saame tagasi:
Pange tähele, et oleme päringuparameetris kasutanud tähte "*: *". See täpsustab, et Solr peaks tagastama kõik kollektsioonis olevad andmed. Isegi kui oleme määranud, et kõik andmed tuleb tagastada, saab Solr aru, et kogumikus võib olla palju andmeid ja nii, see tagastab ainult esimesed 10 dokumenti.
Kõigi andmete kustutamine
Siiani kasutasid kõik proovitud API-d JSON-vormingut. Seekord proovime XML-i päringu vormingut. XML-vormingu kasutamine on JSON-iga äärmiselt sarnane, kuna XML on ka ennast kirjeldav.
Proovime käsku kustutada kõik meie kollektsioonis olevad andmed.
Kõigi andmete kustutamine
lokk "http: // localhost: 8983 / solr / linux_hint_collection / update?toime = tõene "-H" sisutüüp: tekst / xml "--andmete-binaarne" *: * "Selle käsuga saame tagasi:
Kustutage kõik andmed XML-päringu abil
Nüüd, kui proovime uuesti kõiki andmeid hankida, näeme, et praegu pole andmeid saadaval:
Hankige kõik andmed
Objektide koguarv
Lõpliku CURL-käsu jaoks vaatame käsku, mille abil saame leida indeksis olevate objektide arvu. Siin on sama käsk:
Objektide koguarv
lokkimine http: // localhost: 8983 / solr / linux_hint_collection / query?silumine = päring & q = *: *Selle käsuga saame tagasi:
Loe objektide arv
Järeldus
Selles tunnis vaatasime, kuidas saaksime kasutada Apache Solr-i ja päringuid edastada nii JSON- kui ka XML-vormingus lokke kasutades. Samuti nägime, et Solri administraatori paneel on kasulik samamoodi nagu kõik meie uuritud lokikäsklused.