Apache Solr

„Apache Solr“ nustatykite mazgą

„Apache Solr“ nustatykite mazgą

1 dalis. Vieno mazgo nustatymas

Šiandien elektroniniu būdu saugoti dokumentus ar duomenis saugojimo įrenginyje yra greita ir paprasta, taip pat pigu. Naudojama yra failo pavadinimo nuoroda, skirta apibūdinti dokumento esmę. Arba duomenys saugomi duomenų bazių valdymo sistemoje (DBVS), tokiose kaip „PostgreSQL“, „MariaDB“ ar „MongoDB“, kad būtų išvardytos tik kelios parinktys. Kelios laikmenos yra prijungtos vietoje arba nuotoliniu būdu prie kompiuterio, pvz., USB atmintinė, vidinis arba išorinis standusis diskas, prie tinklo pridedama saugykla (NAS), „Cloud Storage“ arba GPU / Flash pagrindu, kaip ir „Nvidia V100“ [10].

Priešingai, atvirkštinis procesas, tinkamų dokumentų paieška dokumentų rinkinyje, yra gana sudėtingas. Daugiausia reikia nustatyti failo formatą be kaltės, indeksuoti dokumentą ir išskleisti pagrindines sąvokas (dokumentų klasifikacija). Čia atsiranda „Apache Solr“ sistema. Tai siūlo praktinę sąsają, kad būtų galima atlikti nurodytus veiksmus - sudaryti dokumentų rodyklę, priimti paieškos užklausas, atlikti tikrąją paiešką ir grąžinti paieškos rezultatus. Taigi „Apache Solr“ yra pagrindas efektyviems duomenų bazės ar dokumentų saugyklos tyrimams.

Šiame straipsnyje sužinosite, kaip veikia „Apache Solr“, kaip nustatyti vieną mazgą, indeksuoti dokumentus, atlikti paiešką ir gauti rezultatą.

Tolesni straipsniai remiasi šiuo straipsniu ir juose aptariame kitus, specifinius naudojimo atvejus, pvz., „PostgreSQL“ DBVS integravimą kaip duomenų šaltinį arba apkrovos balansavimą keliuose mazguose.

Apie „Apache Solr“ projektą

„Apache Solr“ yra paieškos sistemos struktūra, pagrįsta galingu „Lucene“ paieškos indekso serveriu [2]. Parašytas „Java“ kalba, jis prižiūrimas pagal „Apache Software Foundation“ (ASF) skėtį [6]. Jį galima laisvai įsigyti pagal „Apache 2“ licenciją.

Tema „Vėl rasti dokumentus ir duomenis“ vaidina labai svarbų vaidmenį programinės įrangos pasaulyje, ir daugelis kūrėjų su ja užsiima intensyviai. Svetainėje „Awesomeopensource“ [4] pateikiama daugiau nei 150 paieškos sistemų atvirojo kodo projektų. 2021 m. Pradžioje „ElasticSearch“ [8] ir „Apache Solr / Lucene“ yra du geriausi šunys, kai reikia ieškoti didesnių duomenų rinkinių. Norint sukurti paieškos sistemą reikia daug žinių, Frankas tai daro naudodamasis „Python“ pagrindu sukurta „AdvaS Advanced Search“ [3] biblioteka nuo 2002 m.

„Apache Solr“ nustatymas:

„Apache Solr“ diegimas ir valdymas nėra sudėtingi, tai tiesiog visa eilė veiksmų, kuriuos turite atlikti jūs. Pirmosios duomenų užklausos rezultatui skirkite apie 1 valandą. Be to, „Apache Solr“ yra ne tik hobio projektas, bet ir naudojamas profesionalioje aplinkoje. Todėl pasirinkta operacinės sistemos aplinka yra skirta ilgalaikiam naudojimui.

Kaip pagrindinę šio straipsnio aplinką, mes naudojame „Debian GNU / Linux 11“, kuris yra būsimas „Debian“ leidimas (nuo 2021 m. Pradžios) ir kuris, tikimasi, bus prieinamas 2021 m. Viduryje. Šioje mokymo programoje tikimės, kad ją jau įdiegėte virtualioje mašinoje, pvz., „VirtualBox“, arba AWS talpykloje - kaip savąją sistemą.

Be pagrindinių komponentų, sistemoje reikia įdiegti šiuos programinės įrangos paketus:

Šie paketai yra standartiniai „Debian GNU / Linux“ komponentai. Jei dar neįdiegėte, galite juos vienu kartu įdiegti kaip vartotojas, turintis administratoriaus teises, pavyzdžiui, root arba per sudo, parodytas taip:

# apt-get install curl default-java libcommons-cli-java libxerces2-java libtika-java

Parengęs aplinką, antrasis žingsnis yra „Apache Solr“ įdiegimas. Nuo šiol „Apache Solr“ nėra kaip įprastas „Debian“ paketas. Todėl reikia gauti „Apache Solr 8“.8 pirmiausia atsisiųskite iš projekto svetainės [9]. Norėdami išsaugoti savo sistemos kataloge / tmp, naudokite žemiau esančią komandą wget:

$ wget -O / tmp https: // parsisiųsti.apache.org / liucenas / solr / 8.8.0 / solr-8.8.0.tgz

Jungiklis -O sutrumpina -output-dokumentą ir leidžia wget saugoti gautą dervą.gz failą nurodytame kataloge. Archyvo dydis yra maždaug 190 mln. Tada išpakuokite archyvą į / opt katalogą naudodami dervą. Dėl to rasite du pakatalogius - / opt / solr ir / opt / solr-8.8.0, o / opt / solr yra nustatytas kaip simbolinė nuoroda į pastarąją. „Apache Solr“ pateikiamas sąrankos scenarijus, kurį vykdote toliau, yra toks:

# / opt / solr-8.8.0 / bin / install_solr_service.sh

Tai sukuria „Linux“ vartotojo solr paleidimą „Solr“ tarnyboje, o jo namų katalogas / var / solr nustato „Solr“ paslaugą, pridėtą su atitinkamais mazgais ir paleidžia „Solr“ paslaugą 8983 prievade. Tai yra numatytosios vertės. Jei esate nepatenkinti jais, galite juos modifikuoti diegdami arba net vėluodami, nes diegimo scenarijus priima atitinkamus jungiklius sąrankos koregavimui. Rekomenduojame susipažinti su „Apache Solr“ dokumentacija dėl šių parametrų.

„Solr“ programinė įranga yra suskirstyta į šiuos katalogus:

Išsamiau apie šiuos katalogus galite perskaityti „Apache Solr“ dokumentuose [12].

„Apache Solr“ valdymas:

„Apache Solr“ veikia kaip paslauga fone. Galite jį paleisti dviem būdais, naudodami „systemctl“ (pirmoji eilutė) kaip vartotoją, turintį administratoriaus teises, arba tiesiai iš „Solr“ katalogo (antroji eilutė). Žemiau pateikiame abi terminalo komandas:

# systemctl start solr
$ solr / bin / solr pradžia

„Apache Solr“ sustabdymas atliekamas panašiai:

# systemctl stop solr
$ solr / bin / solr stop

Tas pats vyksta ir iš naujo paleidus „Apache Solr“ paslaugą:

# systemctl restart solr
$ solr / bin / solr paleiskite iš naujo

Be to, „Apache Solr“ proceso būsena gali būti rodoma taip:

# systemctl status solr
$ solr / bin / solr būsena

Išvestyje nurodomas pradėtas paslaugos failas, atitinkamas laiko žyma ir žurnalo pranešimai. Žemiau pateiktame paveikslėlyje parodyta, kad „Apache Solr“ tarnyba buvo paleista 8983 prievade su 632 procesu. Procesas sėkmingai vyksta 38 minutes.

Norėdami sužinoti, ar „Apache Solr“ procesas yra aktyvus, taip pat galite atlikti kryžminį patikrinimą naudodami komandą ps kartu su grep. Tai apriboja ps išvestį visais šiuo metu aktyviais „Apache Solr“ procesais.

# ps kirvis | grep - spalvos solr

Žemiau pateiktas paveikslėlis tai parodo vienam procesui. Matote „Java“ skambutį kartu su parametrų sąrašu, pvz., Atminties naudojimo (512M) prievadais, norint klausytis 8983 užklausų, 7983 - sustabdymo užklausų ir ryšio tipo (http).

Vartotojų pridėjimas:

„Apache Solr“ procesai vykdomi su konkrečiu vartotoju, pavadinimu „solr“. Šis vartotojas padeda valdyti „Solr“ procesus, įkelti duomenis ir siųsti užklausas. Nustačius sąranką, vartotojas solr neturi slaptažodžio ir tikimasi, kad turės prisijungti, kad tęstųsi toliau. Nustatykite vartotojo solr slaptažodį kaip vartotojo root, jis rodomas taip:

# passwd solr

„Solr“ administracija:

„Apache Solr“ valdymas atliekamas naudojant „Solr“ informacijos suvestinę. Tai galima pasiekti per interneto naršyklę iš http: // localhost: 8983 / solr. Žemiau pateiktame paveikslėlyje parodytas pagrindinis vaizdas.

Kairėje matote pagrindinį meniu, nukreipiantį į registravimo, „Solr“ branduolių administravimo, „Java“ sąrankos ir būsenos informacijos poskyrius. Pasirinkite norimą šerdį naudodamiesi pasirinkimo laukeliu po meniu. Dešinėje meniu pusėje rodoma atitinkama informacija. Meniu informacijos suvestinė rodo išsamią informaciją apie „Apache Solr“ procesą, taip pat esamą apkrovą ir atminties naudojimą.

Atminkite, kad informacijos suvestinės turinys keičiasi priklausomai nuo „Solr“ branduolių skaičiaus ir indeksuotų dokumentų. Pakeitimai turi įtakos tiek meniu elementams, tiek atitinkamai informacijai, kuri matoma dešinėje.

Suprasti, kaip veikia paieškos sistemos:

Paprasčiau tariant, paieškos sistemos analizuoja dokumentus, juos skirsto į kategorijas ir leidžia atlikti paiešką pagal jų skirstymą į kategorijas. Iš esmės procesas susideda iš trijų etapų, kurie vadinami tikrinimu, indeksavimu ir reitingavimu [13].

Šliaužimas yra pirmasis etapas ir apibūdina procesą, kurio metu renkamas naujas ir atnaujintas turinys. Paieškos variklis naudoja robotus, kurie taip pat žinomi kaip vorai ar tikrintuvai, todėl terminas „tikrinimas“ peržiūri turimus dokumentus.

Vadinamas antrasis etapas indeksavimas. Anksčiau surinkto turinio galima ieškoti ieškant, pakeičiant dokumentų originalus į paieškos variklio suprantamą formatą. Raktiniai žodžiai ir sąvokos yra išgaunami ir saugomi (masinėse) duomenų bazėse.

Vadinamas trečiasis etapas reitingą ir apibūdina paieškos rezultatų rūšiavimo procesą pagal jų atitikimą paieškos užklausai. Dažniausiai rezultatai rodomi mažėjančia tvarka, kad pirmiausia atsirastų rezultatas, labiausiai susijęs su ieškovo užklausa.

„Apache Solr“ veikia panašiai kaip anksčiau aprašytas trijų pakopų procesas. Kaip ir populiarus paieškos variklis „Google“, „Apache Solr“ naudoja įvairių šaltinių dokumentų rinkimo, saugojimo ir indeksavimo seką ir daro juos prieinamus / ieškomus beveik realiu laiku.

„Apache Solr“ naudoja įvairius dokumentų indeksavimo būdus, įskaitant šiuos [14]:

  1. „Index Request Handler“ naudojimas įkeliant dokumentus tiesiai į „Solr“. Šie dokumentai turėtų būti JSON, XML / XSLT arba CSV formatais.
  2. Naudojant ištraukimo užklausų tvarkytuvą („Solr Cell“). Dokumentai turėtų būti PDF arba „Office“ formatai, kuriuos palaiko „Apache Tika“.
  3. Naudojant duomenų importavimo tvarkytuvą, kuris perduoda duomenis iš duomenų bazės ir kataloguoja juos naudodamas stulpelių pavadinimus. Duomenų importavimo tvarkyklė duomenis gauna iš el. Laiškų, RSS sklaidos kanalų, XML duomenų, duomenų bazių ir paprasto teksto failų.

Užklausų tvarkytuvas naudojamas „Apache Solr“, kai siunčiama paieškos užklausa. Užklausos tvarkytojas analizuoja pateiktą užklausą, remdamasis ta pačia rodyklių tvarkytuvo koncepcija, kad atitiktų užklausą ir anksčiau indeksuotus dokumentus. Rungtynės reitinguojamos pagal jų tinkamumą ar aktualumą. Trumpas užklausų pavyzdys parodytas žemiau.

Įkeliami dokumentai:

Siekdami paprastumo, mes naudojame pavyzdinį duomenų rinkinį tokiam pavyzdžiui, kurį jau pateikia „Apache Solr“. Dokumentai įkeliami kaip vartotojo sprendimai. 1 žingsnis yra šerdies su pavadinimu „techproducts“ sukūrimas (daugeliui technikos gaminių).

$ solr / bin / solr sukurti -c technologinius produktus

Viskas gerai, jei pamatysite pranešimą „Sukurti nauji pagrindiniai„ technologiniai produktai ““. 2 veiksmas yra duomenų (XML duomenų iš „exampledocs“) pridėjimas prie anksčiau sukurtų pagrindinių technologinių produktų. Naudojamas įrankio įrašas, kurį parametruoja -c (šerdies pavadinimas) ir įkeliami dokumentai.

$ solr / bin / post -c techproducts solr / example / exampledocs / *.xml

Tai padarys žemiau parodytą išvestį ir joje bus visas kvietimas ir 14 dokumentų, kurie buvo indeksuoti.

Be to, informacijos suvestinė rodo pakeitimus. Kairėje pusėje esančiame išskleidžiamajame meniu matomas naujas įrašas pavadinimu „techproducts“, o dešinėje pusėje pakeistas atitinkamų dokumentų skaičius. Deja, išsamus neapdorotų duomenų rinkinių vaizdas neįmanomas.

Jei reikia pašalinti šerdį / rinkinį, naudokite šią komandą:

$ solr / bin / solr delete -c techniniai produktai

Užklausos duomenys:

„Apache Solr“ siūlo dvi sąsajas duomenims pateikti: per žiniatinklio prietaisų skydelį ir komandinę eilutę. Toliau paaiškinsime abu metodus.

Užklausos siunčiamos per „Solr“ informacijos suvestinę taip:

Komandų eilutė priima tą pačią užklausą kaip ir informacijos suvestinėje. Skirtumas tas, kad turite žinoti užklausos laukų pavadinimą. Norėdami išsiųsti tą pačią užklausą, kaip nurodyta aukščiau, terminale turite paleisti šią komandą:

$ garbanos
http: // localhost: 8983 / solr / techproducts / query?q = ”manu”: ”Belkinas

Išvestis yra JSON formatu, kaip parodyta žemiau. Rezultatas susideda iš atsakymo antraštės ir faktinio atsakymo. Atsakymą sudaro du duomenų rinkiniai.

Apvyniojimas:

Sveikiname! Pirmąjį etapą pasiekėte sėkmingai. Sukurta pagrindinė infrastruktūra ir jūs sužinojote, kaip įkelti dokumentus ir pateikti užklausas.

Kitas žingsnis apims, kaip patikslinti užklausą, suformuluoti sudėtingesnes užklausas ir suprasti skirtingas žiniatinklio formas, kurias teikia „Apache Solr“ užklausos puslapis. Taip pat aptarsime, kaip apdoroti paieškos rezultatą naudojant skirtingus išvesties formatus, pvz., XML, CSV ir JSON.

Apie autorius:

Jacqui Kabeta yra aplinkosaugininkas, aistringas tyrinėtojas, treneris ir patarėjas. Keliose Afrikos šalyse ji dirbo IT pramonėje ir NVO aplinkoje.

Frankas Hofmannas yra IT kūrėjas, treneris, autorius ir nori dirbti iš Berlyno, Ženevos ir Keiptauno. „Debian“ paketų tvarkymo knygos, kurią galite rasti dpmb, bendraautorius.org

Geriausi „Linux“ komandinės eilutės žaidimai
Komandų eilutė yra ne tik jūsų didžiausias sąjungininkas naudojant „Linux“, bet ir pramogų šaltinis, nes ją galite naudoti norėdami žaisti daug įdomių...
Geriausios „Linux“ skirtos „Gamepad“ žemėlapių sudarymo programos
Jei jums patinka žaisti žaidimus „Linux“ su žaidimų pultu, o ne įprasta klaviatūra ir pelės įvesties sistema, yra keletas jums naudingų programų. Daug...
Naudingi įrankiai „Linux“ žaidėjams
Jei jums patinka žaisti žaidimus „Linux“ sistemoje, yra tikimybė, kad galbūt naudojote tokias programas ir įrankius kaip „Wine“, „Lutris“ ir „OBS Stud...