Kas yra „Apache Solr“
„Apache Solr“ yra viena iš populiariausių „NoSQL“ duomenų bazių, kuri gali būti naudojama duomenims saugoti ir pateikti užklausas beveik realiuoju laiku. Jis pagrįstas „Apache Lucene“ ir parašytas „Java“. Kaip ir „Elasticsearch“, jis palaiko duomenų bazių užklausas per REST API. Tai reiškia, kad mes galime naudoti paprastus HTTP skambučius ir naudoti HTTP metodus, tokius kaip GET, POST, PUT, DELETE ir kt. prieigai prie duomenų. Tai taip pat suteikia galimybę gauti duomenis XML arba JSON forma per REST API.
Architektūra: Apache Solr
Prieš pradėdami dirbti su „Apache Solr“, turime suprasti „Apache Solr“ sudarančius komponentus. Pažvelkime į kai kuriuos jo komponentus:
Apache Solr architektūra
Atkreipkite dėmesį, kad aukščiau pateiktame paveikslėlyje parodyti tik pagrindiniai „Solr“ komponentai. Supraskime jų funkcionalumą ir čia:
- Užklausų tvarkytojai: Kliento pateiktas užklausas „Solr“ tvarko užklausų tvarkytojas. Prašymas gali būti bet koks - nuo naujo įrašo pridėjimo, norint atnaujinti „Solr“ indeksą. Tvarkytojai nustato užklausos tipą iš HTTP metodo, naudojamo kartu su užklausų susiejimu.
- Paieškos komponentas: Tai yra vienas iš svarbiausių komponentų, dėl kurio „Solr“ yra žinomas. Paieškos komponentas rūpinasi su paieška susijusių operacijų, tokių kaip neryškumas, rašybos tikrinimas, terminų užklausos ir kt., Atlikimu.
- Užklausų analizatorius: Tai komponentas, kuris iš tikrųjų analizuoja užklausą, kurią klientas perduoda užklausų tvarkytojui, ir suskirsto užklausą į kelias dalis, kurias gali suprasti pagrindinis variklis
- Atsakymo rašytojas: Šis komponentas yra atsakingas už varikliui perduotų užklausų išvesties formato valdymą. „Response Writer“ leidžia pateikti išvestį įvairiais formatais, tokiais kaip XML, JSON ir kt.
- Analizatorius / Tokenizer: „Lucene Engine“ supranta užklausas kelių žetonų pavidalu. „Solr“ analizuoja užklausą, suskirsto ją į kelis žetonus ir perduoda „Lucene Engine“.
- Atnaujinti užklausų procesorių: Kai užklausa vykdoma ir ji atlieka veiksmus, pvz., Atnaujina indeksą ir su juo susijusius duomenis, „Update Request Processor“ komponentas yra atsakingas už indekso duomenų valdymą ir jų modifikavimą.
Darbo su „Apache Solr“ pradžia
Norėdami pradėti naudoti „Apache Solr“, jis turi būti įdiegtas kompiuteryje. Norėdami tai padaryti, skaitykite „Apache Solr“ diegimas „Ubuntu“.
Įsitikinkite, kad turite aktyvų „Solr“ diegimą, jei norite išbandyti pavyzdžius, kuriuos pateikiame vėliau pamokoje, o administratoriaus puslapį galite pasiekti „localhost“:
Apache Solr tinklapis
Įterpiami duomenys
Norėdami pradėti, apsvarstykime „Solr“ kolekciją, kurią vadiname linux_hint_collection. Nereikia aiškiai apibrėžti šios kolekcijos, nes kai įdedame pirmąjį objektą, kolekcija bus sukurta automatiškai. Išbandykime savo pirmąjį REST API iškvietimą, kad į pavadintą kolekciją įterptume naują objektą linux_hint_collection.
Įterpiami duomenys
curl -X POST -H 'Turinio tipas: programa / JSON'"http: // localhost: 8983 / solr / linux_hint_collection / update / json / docs" --data-dvejetainis "
„id“: „iduye“,
"name": "Shubham"
Štai ką mes grąžiname naudodami šią komandą:
Komanda įterpti duomenis į „Solr“
Duomenis taip pat galima įterpti naudojant „Solr“ pagrindinį puslapį, kurį apžvelgėme anksčiau. Pabandykime tai čia, kad viskas būtų aišku:
Įterpti duomenis per „Solr“ pagrindinį puslapį
Kadangi „Solr“ turi puikų sąveikos būdą su „HTTP RESTful“ API, nuo šiol mes demonstruosime DB sąveiką naudodami tas pačias API ir daug dėmesio nesieksime duomenų įterpimui per „Solr“ tinklalapį.
Išvardinkite visas kolekcijas
Mes taip pat galime surašyti visas „Apache Solr“ kolekcijas naudodami REST API. Štai komanda, kurią galime naudoti:
Išvardinkite visas kolekcijas
susisukti http: // localhost: 8983 / solr / admin / kolekcijos?veiksmai = SĄRAŠAS & wt = jsonPažiūrėkime šios komandos išvestį:
Čia matome dvi „Solr“ instaliacijos kolekcijas.
Gauti objektą pagal ID
Dabar pažiūrėkime, kaip mes galime gauti duomenis iš „Solr“ kolekcijos su konkrečiu ID. Čia yra komanda REST API:
Gauti objektą pagal ID
susisukti http: // localhost: 8983 / solr / linux_hint_collection / get?id = iduyeŠtai ką mes grąžiname naudodami šią komandą:
Gauti visus duomenis
Paskutinėje „REST“ API užklausėme duomenis naudodami konkretų ID. Šį kartą gausime visus duomenis, esančius mūsų „Solr“ kolekcijoje.
Gauti objektą pagal ID
susisukti http: // localhost: 8983 / solr / linux_hint_collection / select?q = *: *Štai ką mes grąžiname naudodami šią komandą:
Atkreipkite dėmesį, kad užklausos parametre naudojome „*: *“. Tai nurodo, kad „Solr“ turėtų grąžinti visus kolekcijoje esančius duomenis. Net jei mes nurodėme, kad visi duomenys turėtų būti grąžinti, „Solr“ supranta, kad kolekcijoje gali būti didelis duomenų kiekis ir taip, jis grąžins tik pirmuosius 10 dokumentų.
Ištrinti visus duomenis
Iki šiol visose bandytose API buvo naudojamas JSON formatas. Šį kartą mes bandysime XML užklausos formatą. XML formato naudojimas yra labai panašus į JSON, nes XML taip pat apibūdina save.
Pabandykime komandą ištrinti visus duomenis, kuriuos turime savo kolekcijoje.
Ištrinti visus duomenis
garbanoti "http: // localhost: 8983 / solr / linux_hint_collection / update?įsipareigoti = tiesa "-H" turinio tipas: tekstas / xml "--data-dvejetainis" *: * "Štai ką mes grąžiname naudodami šią komandą:
Ištrinkite visus duomenis naudodami XML užklausą
Jei vėl bandysime gauti visus duomenis, pamatysime, kad dabar duomenų nėra:
Gauti visus duomenis
Bendras objektų skaičius
Norėdami sužinoti paskutinę komandą CURL, pažiūrėkime komandą, su kuria galime rasti objektų, esančių rodyklėje, skaičių. Čia yra to paties komanda:
Bendras objektų skaičius
garbanos http: // localhost: 8983 / solr / linux_hint_collection / query?derinti = užklausa & q = *: *Štai ką mes grąžiname naudodami šią komandą:
Suskaičiuoti objektų skaičių
Išvada
Šioje pamokoje apžvelgėme, kaip galime naudoti „Apache Solr“ ir perduoti užklausas naudodami garbaną tiek JSON, tiek XML formatu. Mes taip pat matėme, kad „Solr“ administratoriaus skydas yra naudingas taip pat, kaip ir visos mūsų ištirtos garbanojimo komandos.