Kaj je Apache Solr
Apache Solr je ena izmed najbolj priljubljenih baz podatkov NoSQL, ki se lahko uporablja za shranjevanje podatkov in njihovo poizvedovanje v skoraj realnem času. Temelji na Apache Lucene in je napisan v Javi. Tako kot Elasticsearch podpira poizvedbe v zbirki podatkov prek API-jev REST. To pomeni, da lahko uporabljamo preproste klice HTTP in metode HTTP, kot so GET, POST, PUT, DELETE itd. za dostop do podatkov. Ponuja tudi možnost pridobivanja podatkov v obliki XML ali JSON prek API-jev REST.
Arhitektura: Apache Solr
Preden začnemo delati z Apache Solr, moramo razumeti komponente, ki sestavljajo Apache Solr. Oglejmo si nekaj komponent, ki jih ima:
Arhitektura Apache Solr
Upoštevajte, da so na zgornji sliki prikazane samo glavne komponente za Solr. Razumejmo tudi njihovo funkcionalnost tukaj:
- Upravljavci zahtev: Zahteve, ki jih stranka pošlje Solrju, upravlja upravljavec zahtev. Zahteva je lahko od dodajanja novega zapisa do posodobitve indeksa v Solrju. Obdelovalci prepoznajo vrsto zahteve iz metode HTTP, ki se uporablja pri preslikavi zahtev.
- Iskalna komponenta: To je ena najpomembnejših komponent, po kateri je Solr znan. Search Component skrbi za izvajanje operacij, povezanih z iskanjem, kot so nejasnosti, preverjanje črkovanja, izrazi poizvedb itd.
- Razčlenjevalnik poizvedb: To je komponenta, ki dejansko razčleni poizvedbo, ki jo stranka posreduje obdelovalcu zahtev, in razbije poizvedbo na več delov, ki jih lahko razume osnovni mehanizem
- Response Writer: Ta komponenta je odgovorna za upravljanje izhodne oblike za poizvedbe, posredovane mehanizmu. Response Writer nam omogoča, da dobimo izhodne podatke v različnih oblikah, kot so XML, JSON itd.
- Analizator / tokenizer: Lucene Engine razume poizvedbe v obliki več žetonov. Solr poizvedbo analizira, razbije na več žetonov in jo posreduje Lucene Engine.
- Procesor zahteve za posodobitev: Ko se poizvedba zažene in izvaja operacije, kot je posodabljanje indeksa in z njim povezanih podatkov, je komponenta procesorja zahtev za posodobitev odgovorna za upravljanje podatkov v indeksu in njihovo spreminjanje.
Kako začeti z Apache Solr
Če želite začeti uporabljati Apache Solr, ga morate namestiti na napravo. Če želite to narediti, preberite Namesti Apache Solr v Ubuntu.
Prepričajte se, da imate aktivno namestitev Solr, če želite preizkusiti primere, ki jih predstavljamo kasneje v lekciji in je skrbniška stran dosegljiva na localhost:
Domača stran Apache Solr
Vstavljanje podatkov
Za začetek si oglejmo zbirko v Solru, ki jo imenujemo linux_hint_collection. Te zbirke ni treba izrecno definirati, saj bo, ko vstavimo prvi predmet, zbirka narejena samodejno. Preizkusimo naš prvi klic REST API, da v zbirko z imenom vstavimo nov predmet linux_hint_collection.
Vstavljanje podatkov
curl -X POST -H 'Content-Type: application / json''http: // localhost: 8983 / solr / linux_hint_collection / update / json / docs' --data-binary '
"id": "iduye",
"name": "Shubham"
'
Tukaj dobimo s tem ukazom:
Ukaz za vstavljanje podatkov v Solr
Podatke lahko vstavite tudi z domačo stranjo Solr, ki smo si jo ogledali prej. Poskusimo to tukaj, da bodo stvari jasne:
Vstavite podatke preko Solr Homepage
Ker ima Solr odličen način interakcije z API-ji HTTP RESTful, bomo odslej pokazali interakcijo z DB-ji z uporabo istih API-jev in se ne bomo osredotočali veliko na vstavljanje podatkov prek spletne strani Solr.
Seznam vseh zbirk
Vse zbirke v Apache Solr lahko navedemo tudi z uporabo API-ja REST. Tu je ukaz, ki ga lahko uporabimo:
Seznam vseh zbirk
curl http: // localhost: 8983 / solr / admin / collection?dejanja = SEZNAM & wt = jsonPoglejmo izhod za ta ukaz:
Tukaj vidimo dve zbirki, ki obstajata v naši namestitvi Solr.
Pridobite objekt po ID-ju
Zdaj pa poglejmo, kako lahko pridobimo podatke iz zbirke Solr z določenim ID-jem. Tu je ukaz REST API:
Pridobite objekt po ID-ju
curl http: // localhost: 8983 / solr / linux_hint_collection / get?id = iduyeTukaj dobimo s tem ukazom:
Pridobite vse podatke
V našem zadnjem API-ju REST smo podatke poizvedovali z določenim ID-jem. Tokrat bomo dobili vse podatke iz naše zbirke Solr.
Pridobite objekt po ID-ju
curl http: // localhost: 8983 / solr / linux_hint_collection / select?q = *: *Tukaj dobimo s tem ukazom:
Upoštevajte, da smo v parametru poizvedbe uporabili '*: *'. To določa, da mora Solr vrniti vse podatke v zbirki. Tudi če smo določili, da je treba vse podatke vrniti, Solr razume, da ima zbirka morda veliko podatkov in tako, vrnil bo le prvih 10 dokumentov.
Brisanje vseh podatkov
Do zdaj so vsi API-ji, ki smo jih preizkusili, uporabljali format JSON. Tokrat bomo poskusili format poizvedbe XML. Uporaba oblike XML je zelo podobna obliki JSON, saj je tudi XML samoopisen.
Poskusimo z ukazom za brisanje vseh podatkov, ki jih imamo v zbirki.
Brisanje vseh podatkov
curl "http: // localhost: 8983 / solr / linux_hint_collection / update?commit = true "-H" Content-Type: text / xml "--data-binary" *: * "Tukaj dobimo s tem ukazom:
Izbrišite vse podatke z uporabo poizvedbe XML
Če bomo znova poskusili pridobiti vse podatke, bomo videli, da zdaj ni na voljo nobenih podatkov:
Pridobite vse podatke
Skupno število predmetov
Za končni ukaz CURL si oglejmo ukaz, s katerim lahko poiščemo število predmetov, ki so prisotni v indeksu. Tu je ukaz za isto:
Skupno število predmetov
curl http: // localhost: 8983 / solr / linux_hint_collection / query?odpravljanje napak = poizvedba & q = *: *Tukaj dobimo s tem ukazom:
Štetje števila predmetov
Zaključek
V tej lekciji smo preučili, kako lahko uporabljamo Apache Solr in posredujemo poizvedbe z uporabo curl v obliki JSON in XML. Ugotovili smo tudi, da je skrbniška plošča Solr uporabna na enak način kot vsi ukazi curl, ki smo jih preučevali.