Kas ir Apache Solr
Apache Solr ir viena no populārākajām NoSQL datu bāzēm, kuru var izmantot datu glabāšanai un vaicājumiem gandrīz reāllaikā. Tas ir balstīts uz Apache Lucene un ir rakstīts Java valodā. Tāpat kā Elasticsearch, tas atbalsta datu bāzes vaicājumus, izmantojot REST API. Tas nozīmē, ka mēs varam izmantot vienkāršus HTTP zvanus un izmantot tādas HTTP metodes kā GET, POST, PUT, DELETE utt. lai piekļūtu datiem. Tas arī nodrošina iespēju iegūt datus XML vai JSON formā, izmantojot REST API.
Arhitektūra: Apache Solr
Pirms mēs varam sākt strādāt ar Apache Solr, mums ir jāsaprot komponenti, kas veido Apache Solr. Apskatīsim dažus tā komponentus:
Apache Solr arhitektūra
Ņemiet vērā, ka iepriekš redzamajā attēlā ir parādīti tikai galvenie Solr komponenti. Sapratīsim to funkcionalitāti arī šeit:
- Pieprasījumu apstrādātāji: Pieprasījumus, ko klients iesniedz Solr, pārvalda pieprasījumu apstrādātājs. Pieprasījums var būt jebkas, sākot no jauna ieraksta pievienošanas, lai atjauninātu indeksu Solr. Apstrādātāji identificē pieprasījuma veidu, izmantojot HTTP metodi, kas izmantota pieprasījumu kartēšanā.
- Meklēšanas komponents: Šis ir viens no vissvarīgākajiem komponentiem, ar kuru Solr ir pazīstams. Meklēšanas komponents rūpējas par ar meklēšanu saistītu darbību veikšanu, piemēram, izplūdumu, pareizrakstības pārbaudi, terminu vaicājumus utt.
- Vaicājumu parsētājs: Šis ir komponents, kas faktiski parsē vaicājumu, kuru klients nodod pieprasījumu apstrādātājam, un sadala vaicājumu vairākās daļās, kuras var saprast pamatā esošais dzinējs
- Atbildes rakstnieks: Šis komponents ir atbildīgs par dzinējam nodoto vaicājumu izvades formāta pārvaldību. Atbildes rakstītājs ļauj mums nodrošināt izvadi dažādos formātos, piemēram, XML, JSON utt.
- Analizators / marķieris: Lucene Engine saprot vaicājumus vairāku žetonu veidā. Solr analizē vaicājumu, sadala to vairākos marķieros un nodod Lucene Engine.
- Atjaunināt pieprasījumu procesoru: Kad vaicājums tiek palaists un tas veic tādas darbības kā indeksa un ar to saistīto datu atjaunināšana, atjaunināšanas pieprasījuma procesora komponents ir atbildīgs par rādītājā esošo datu pārvaldību un to modificēšanu.
Darba sākšana ar Apache Solr
Lai sāktu lietot Apache Solr, tas ir jāinstalē mašīnā. Lai to izdarītu, lasiet Ubuntu sadaļā Apache Solr instalēšana.
Pārliecinieties, ka jums ir aktīva Solr instalācija, ja vēlaties izmēģināt piemērus, kurus mēs vēlāk sniegsim nodarbībā, un admin lapa ir pieejama vietnē localhost:
Apache Solr mājas lapa
Datu ievietošana
Lai sāktu, ņemsim vērā kolekciju Solr, kuru mēs saucam par linux_hint_collection. Nav nepieciešams skaidri definēt šo kolekciju, jo, ievietojot pirmo objektu, kolekcija tiks izveidota automātiski. Izmēģināsim savu pirmo REST API izsaukumu, lai ievietotu jaunu objektu nosauktajā kolekcijā linux_hint_collection.
Datu ievietošana
čokurošanās -X POST -H 'Content-Type: application / json'"http: // localhost: 8983 / solr / linux_hint_collection / update / json / docs" --data-binārs "
"id": "iduye",
"name": "Shubham"
Lūk, ko mēs atgūsim ar šo komandu:
Komanda, lai ievietotu datus Solr
Datus var ievietot arī, izmantojot Solr mājas lapu, kuru apskatījām iepriekš. Izmēģināsim to šeit, lai viss būtu skaidrs:
Ievietojiet datus, izmantojot Solr mājas lapu
Tā kā Solr ir lielisks mijiedarbības veids ar HTTP RESTful API, mēs turpmāk demonstrēsim DB mijiedarbību, izmantojot tos pašus API, un daudz nepievērsīsimies datu ievietošanai caur Solr tīmekļa vietni.
Uzskaitiet visas kolekcijas
Mēs varam uzskaitīt visas Apache Solr kolekcijas, izmantojot arī REST API. Šeit ir komanda, kuru mēs varam izmantot:
Uzskaitiet visas kolekcijas
čokurošanās http: // localhost: 8983 / solr / admin / kolekcijas?darbības = LIST & wt = jsonApskatīsim šīs komandas izvadi:
Mēs šeit redzam divas kolekcijas, kas pastāv mūsu Solr instalācijā.
Iegūt objektu pēc ID
Tagad ļaujiet mums uzzināt, kā mēs varam iegūt datus no Solr kolekcijas ar noteiktu ID. Šeit ir komanda REST API:
Iegūt objektu pēc ID
čokurošanās http: // localhost: 8983 / solr / linux_hint_collection / get?id = iduyeLūk, ko mēs atgūsim ar šo komandu:
Iegūt visus datus
Savā pēdējā REST API mēs vaicājām datus, izmantojot noteiktu ID. Šoreiz mēs iegūsim visus datus mūsu Solr kolekcijā.
Iegūt objektu pēc ID
čokurošanās http: // localhost: 8983 / solr / linux_hint_collection / select?q = *: *Lūk, ko mēs atgūsim ar šo komandu:
Ievērojiet, ka vaicājuma parametrā esam izmantojuši “*: *”. Tas norāda, ka Solr jāatdod visi dati, kas atrodas kolekcijā. Pat ja mēs esam norādījuši, ka visi dati ir jāatgriež, Solr saprot, ka kolekcijā varētu būt liels datu apjoms, un tāpēc, tas atgriezīs tikai pirmos 10 dokumentus.
Visu datu dzēšana
Līdz šim visās mūsu izmēģinātajās API tika izmantots JSON formāts. Šoreiz mēs mēģināsim XML vaicājuma formātu. XML formāta izmantošana ir ārkārtīgi līdzīga JSON, jo XML ir arī pašu raksturojošs.
Izmēģināsim komandu, lai izdzēstu visus mūsu kolekcijā esošos datus.
Visu datu dzēšana
čokurošanās "http: // localhost: 8983 / solr / linux_hint_collection / update?comm = true "-H" Content-Type: text / xml "--data-binārs" *: * "Lūk, ko mēs atgūsim ar šo komandu:
Dzēsiet visus datus, izmantojot XML vaicājumu
Ja mēs atkal mēģināsim iegūt visus datus, redzēsim, ka tagad dati nav pieejami:
Iegūt visus datus
Kopējais objektu skaits
Galīgajai komandai CURL apskatīsim komandu, ar kuras palīdzību mēs varam atrast indeksā esošo objektu skaitu. Šeit ir komanda tam pašam:
Kopējais objektu skaits
čokurošanās http: // localhost: 8983 / solr / linux_hint_collection / query?atkļūdošana = vaicājums & q = *: *Lūk, ko mēs atgūsim ar šo komandu:
Skaitīt objektu skaitu
Secinājums
Šajā nodarbībā mēs apskatījām, kā mēs varam izmantot Apache Solr un nodot vaicājumus, izmantojot čokurošanos gan JSON, gan XML formātā. Mēs arī redzējām, ka Solr administratora panelis ir noderīgs tāpat kā visas mūsu izpētītās čokurošanās komandas.