Apache Solr

Apache Solr nastavi vozlišče

Apache Solr nastavi vozlišče

1. del: Nastavitev enega vozlišča

Danes je elektronsko shranjevanje dokumentov ali podatkov v pomnilniški napravi hitro in enostavno, tudi primerljivo poceni. V uporabi je sklic na ime datoteke, ki naj bi opisal, za kaj gre v dokumentu. Podatki se hranijo tudi v sistemu za upravljanje baz podatkov (DBMS), kot so PostgreSQL, MariaDB ali MongoDB, če naštejemo le nekaj možnosti. Več pomnilniških medijev je bodisi lokalno bodisi oddaljeno povezanih z računalnikom, na primer USB ključ, notranji ali zunanji trdi disk, Network Attached Storage (NAS), Cloud Storage ali GPU / Flash, kot v Nvidia V100 [10].

Nasprotno pa je obratni postopek iskanja pravih dokumentov v zbirki dokumentov precej zapleten. Večinoma zahteva zaznavanje oblike datoteke brez napak, indeksiranje dokumenta in ekstrahiranje ključnih konceptov (klasifikacija dokumentov). Tu nastopi okvir Apache Solr. Ponuja praktičen vmesnik za izvedbo omenjenih korakov - ustvarjanje indeksa dokumentov, sprejemanje iskalnih poizvedb, dejansko iskanje in vrnitev rezultata iskanja. Tako Apache Solr tvori jedro za učinkovite raziskave silosa baze podatkov ali dokumentov.

V tem članku boste izvedeli, kako deluje Apache Solr, kako nastaviti posamezno vozlišče, indeksirati dokumente, opraviti iskanje in pridobiti rezultat.

Nadaljnji članki temeljijo na tem in v njih obravnavamo druge, bolj specifične primere uporabe, kot je integracija DBMS PostgreSQL kot vira podatkov ali uravnoteženje obremenitve v več vozliščih.

O projektu Apache Solr

Apache Solr je ogrodje iskalnika, ki temelji na zmogljivem indeksnem strežniku Lucene [2]. Napisano v Javi, se vzdržuje pod okriljem fundacije Apache Software Foundation (ASF) [6]. Na voljo je prosto pod licenco Apache 2.

Tema »Ponovno poišči dokumente in podatke« ima zelo pomembno vlogo v svetu programske opreme in mnogi razvijalci se z njo intenzivno ukvarjajo. Na spletnem mestu Awesomeopensource [4] je naštetih več kot 150 odprtokodnih projektov iskalnikov. Od začetka leta 2021 sta ElasticSearch [8] in Apache Solr / Lucene najboljša psa pri iskanju večjih podatkovnih nizov. Razvoj vašega iskalnika zahteva veliko znanja, Frank to počne s knjižnico AdvaS Advanced Search [3] na osnovi Pythona od leta 2002.

Nastavitev Apache Solr:

Namestitev in delovanje Apache Solr nista zapletena, preprosto morate izvesti celo vrsto korakov. Rezultat prve podatkovne poizvedbe naj bo približno 1 uro. Poleg tega Apache Solr ni samo hobi projekt, ampak se uporablja tudi v profesionalnem okolju. Zato je izbrano okolje operacijskega sistema zasnovano za dolgoročno uporabo.

Kot osnovno okolje za ta članek uporabljamo Debian GNU / Linux 11, ki je prihajajoča izdaja Debiana (od začetka leta 2021) in bo predvidoma na voljo sredi leta 2021. Za to vadnico pričakujemo, da ste jo že namestili, bodisi kot izvorni sistem, v navidezni stroj, kot je VirtualBox, ali vsebnik AWS.

Poleg osnovnih komponent potrebujete v sistem naslednje programske pakete:

Ti paketi so standardne komponente Debian GNU / Linuxa. Če še niso nameščeni, jih lahko po enkrat namestite kot uporabnik z skrbniškimi pravicami, na primer root ali prek sudo, prikazano na naslednji način:

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

Po pripravi okolja je drugi korak namestitev Apache Solr. Od zdaj Apache Solr ni na voljo kot običajni paket Debian. Zato je treba pridobiti Apache Solr 8.8 najprej iz razdelka za prenos na spletni strani projekta [9]. Uporabite spodnji ukaz wget, da ga shranite v imenik / tmp vašega sistema:

$ wget -O / tmp https: // prenosi.apache.org / lucen / solr / 8.8.0 / solr-8.8.0.tgz

Stikalo -O skrajša -output-dokument in poskrbi, da wget shrani pridobljeni katran.gz v danem imeniku. Velikost arhiva je približno 190 milijonov. Nato razpakirajte arhiv v imenik / opt s pomočjo tar. Kot rezultat boste našli dva podimenika - / opt / solr in / opt / solr-8.8.0, medtem ko je / opt / solr nastavljen kot simbolna povezava do slednjega. Apache Solr prihaja z namestitvenim skriptom, ki ga izvedete naslednji, in sicer:

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

Rezultat tega je ustvarjanje uporabniškega solrja za Linux, ki deluje v storitvi Solr, plus njegov domači imenik pod / var / solr vzpostavi storitev Solr, dodana z ustreznimi vozlišči, in zažene storitev Solr na vratih 8983. To so privzete vrednosti. Če z njimi niste zadovoljni, jih lahko med namestitvijo spremenite ali celo pozneje, ker namestitveni skript sprejme ustrezna stikala za nastavitve nastavitev. Priporočamo, da si ogledate dokumentacijo Apache Solr glede teh parametrov.

Programska oprema Solr je organizirana v naslednjih imenikih:

Podrobneje lahko preberete o teh imenikih v dokumentaciji Apache Solr [12].

Upravljanje Apache Solr:

Apache Solr deluje kot storitev v ozadju. Zaženete ga lahko na dva načina, bodisi z uporabo systemctl (prva vrstica) kot uporabnik s skrbniškimi dovoljenji bodisi neposredno iz imenika Solr (druga vrstica). Spodaj navajamo oba terminalska ukaza:

# systemctl start solr
$ solr / bin / solr start

Zaustavitev Apache Solr se izvede podobno:

# systemctl stop solr
$ solr / bin / solr stop

Na enak način gre pri ponovnem zagonu storitve Apache Solr:

# systemctl znova zaženi solr
$ solr / bin / solr znova zaženi

Poleg tega je lahko stanje postopka Apache Solr prikazano na naslednji način:

# systemctl status solr
$ solr / bin / status solr

V izhodu je navedena servisna datoteka, ki se je začela, tako ustrezni časovni žig kot tudi sporočila dnevnika. Spodnja slika prikazuje, da se je storitev Apache Solr zagnala na vratih 8983 s postopkom 632. Postopek se uspešno izvaja 38 minut.

Če želite preveriti, ali je postopek Apache Solr aktiven, lahko tudi navzkrižno preverite z ukazom ps v kombinaciji z grep. To omejuje izhod ps na vse trenutno aktivne procese Apache Solr.

# ps sekira | grep --barvna solr

Spodnja slika to dokazuje za en postopek. Vidite klic Jave, ki ga spremlja seznam parametrov, na primer vrata za uporabo pomnilnika (512M), ki jih je treba poslušati na 8983 za poizvedbe, 7983 za zahteve za zaustavitev in vrsto povezave (http).

Dodajanje uporabnikov:

Procesi Apache Solr se izvajajo z določenim uporabnikom z imenom solr. Ta uporabnik je koristen pri upravljanju postopkov Solr, nalaganju podatkov in pošiljanju zahtev. Po nastavitvi uporabniški reševalec nima gesla in se pričakuje, da ga bo moral prijaviti za nadaljevanje. Nastavite geslo za uporabniško rešitev, kot je uporabniški koren, prikazano je na naslednji način:

# passwd solr

Solr uprava:

Upravljanje Apache Solr poteka z nadzorno ploščo Solr. Do tega je mogoče dostopati prek spletnega brskalnika s spletnega mesta http: // localhost: 8983 / solr. Spodnja slika prikazuje glavni pogled.

Na levi strani vidite glavni meni, ki vas vodi do pododdelkov za beleženje, upravljanje jeder Solr, nastavitev Java in informacije o stanju. S pomočjo izbirnega polja pod menijem izberite želeno jedro. Na desni strani menija so prikazane ustrezne informacije. Vnos v meniju Nadzorna plošča prikazuje nadaljnje podrobnosti v zvezi s postopkom Apache Solr ter trenutno obremenitev in porabo pomnilnika.

Upoštevajte, da se vsebina nadzorne plošče spreminja glede na število jeder Solr in indeksirane dokumente. Spremembe vplivajo na elemente menija in ustrezne informacije, ki so vidne na desni.

Razumevanje delovanja iskalnikov:

Preprosto povedano, iskalniki analizirajo dokumente, jih kategorizirajo in vam omogočajo iskanje na podlagi njihove kategorizacije. V bistvu je postopek sestavljen iz treh stopenj, ki se imenujejo pajkanje, indeksiranje in razvrščanje [13].

Plazenje je prva faza in opisuje postopek zbiranja nove in posodobljene vsebine. Iskalnik uporablja robote, ki so znani tudi kot pajki ali pajki, zato izraz plazenje prehaja po razpoložljivih dokumentih.

Druga faza se imenuje indeksiranje. Po predhodno zbrani vsebini je iskanje mogoče s pretvorbo izvirnih dokumentov v obliko, ki jo iskalnik razume. Ključne besede in koncepti se izvlečejo in shranijo v (množičnih) zbirkah podatkov.

Tretja stopnja se imenuje razvrstitev in opisuje postopek razvrščanja rezultatov iskanja glede na njihovo ustreznost z iskalno poizvedbo. Rezultate je običajno prikazati v padajočem vrstnem redu, tako da je na prvem mestu rezultat, ki je najbolj pomemben za poizvedbo iskalca.

Apache Solr deluje podobno kot prej opisani tristopenjski postopek. Tako kot priljubljeni iskalnik Google, tudi Apache Solr uporablja zaporedje zbiranja, shranjevanja in indeksiranja dokumentov iz različnih virov in jih omogoča na voljo / jih je mogoče iskati v skoraj realnem času.

Apache Solr uporablja različne načine za indeksiranje dokumentov, vključno z naslednjimi [14]:

  1. Uporaba indeksnega zahtevka za nalaganje pri nalaganju dokumentov neposredno v Solr. Ti dokumenti morajo biti v oblikah JSON, XML / XSLT ali CSV.
  2. Uporaba upravljalnika zahtev za ekstrahiranje (Solr Cell). Dokumenti morajo biti v oblikah PDF ali Office, ki jih podpira Apache Tika.
  3. Uporaba upravljalnika uvoza podatkov, ki posreduje podatke iz baze podatkov in jih katalogizira z imeni stolpcev. Upravitelj uvoza podatkov pridobi podatke iz e-pošte, virov RSS, podatkov XML, baz podatkov in navadnih besedilnih datotek kot vire.

Pri pošiljanju zahteve za iskanje se v Apache Solr uporablja obdelava poizvedb. Obdelovalec poizvedbe analizira dano poizvedbo na podlagi istega koncepta obdelovalca indeksa, da se ujema s poizvedbo in predhodno indeksiranimi dokumenti. Tekme so razvrščene glede na njihovo ustreznost ali ustreznost. Kratek primer poizvedbe je prikazan spodaj.

Nalaganje dokumentov:

Zaradi poenostavitve uporabimo vzorčni nabor podatkov za naslednji primer, ki ga že ponuja Apache Solr. Nalaganje dokumentov se izvede kot uporabniški reševalec. Korak 1 je ustvarjanje jedra z imenom techproducts (za številne tehnične izdelke).

$ solr / bin / solr ustvari -c techproducts

Vse je v redu, če vidite sporočilo "Ustvarili smo novo jedro 'techproducts'". Korak 2 je dodajanje podatkov (podatki XML iz exampledocs) predhodno ustvarjenim temeljnim tehnološkim izdelkom. V uporabi je objava orodja, ki je parametrirana z -c (ime jedra) in dokumenti, ki jih je treba naložiti.

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

Rezultat bo spodnji rezultat in bo vseboval celoten klic ter 14 indeksiranih dokumentov.

Na nadzorni plošči so prikazane tudi spremembe. V spustnem meniju na levi strani je viden nov vnos z imenom techproducts, na desni pa število spremenjenih dokumentov. Podroben pregled neobdelanih podatkovnih nizov žal ni mogoč.

Če je treba jedro / zbirko odstraniti, uporabite naslednji ukaz:

$ solr / bin / solr delete -c techproducts

Poizvedovanje podatkov:

Apache Solr ponuja dva vmesnika za iskanje podatkov: prek spletne nadzorne plošče in ukazne vrstice. Spodaj bomo razložili obe metodi.

Pošiljanje poizvedb prek nadzorne plošče Solr poteka na naslednji način:

Ukazna vrstica sprejme isto poizvedbo kot na nadzorni plošči. Razlika je v tem, da morate poznati ime poizvedbenih polj. Če želite poslati enako poizvedbo kot zgoraj, morate v terminalu zagnati naslednji ukaz:

$ curl
http: // localhost: 8983 / solr / techproducts / query?q = "manu": "Belkin

Izhod je v obliki JSON, kot je prikazano spodaj. Rezultat je sestavljen iz glave odziva in dejanskega odziva. Odgovor je sestavljen iz dveh podatkovnih nizov.

Zavijanje:

Vse čestitke! Prvo stopnjo ste dosegli z uspehom. Osnovna infrastruktura je nastavljena in naučili ste se nalaganja in poizvedovanja po dokumentih.

Naslednji korak bo zajemal, kako izboljšati poizvedbo, oblikovati bolj zapletene poizvedbe in razumeti različne spletne obrazce, ki jih ponuja stran za poizvedbe Apache Solr. Razpravljali bomo tudi o tem, kako naknadno obdelati rezultat iskanja z različnimi izhodnimi formati, kot so XML, CSV in JSON.

O avtorjih:

Jacqui Kabeta je okoljevarstvenica, navdušena raziskovalka, trenerka in mentorica. V več afriških državah je delala v IT industriji in okoljih nevladnih organizacij.

Frank Hofmann je razvijalec informacijskih tehnologij, trener in avtor ter raje dela iz Berlina, Ženeve in Cape Towna. Soavtor knjige za upravljanje paketov Debian, ki je na voljo pri dpmb.org

Namestite najnovejši Dolphin Emulator za Gamecube & Wii v Linux
Dolphin Emulator vam omogoča igranje izbranih iger Gamecube in Wii na osebnih računalnikih Linux (PC). Dolphin Emulator je prosto dostopen in odprtok...
Kako uporabljati GameConqueror Cheat Engine v Linuxu
Članek zajema vodnik o uporabi varalnice GameConqueror v Linuxu. Številni uporabniki, ki igrajo igre v sistemu Windows, pogosto uporabljajo aplikacijo...
Najboljši emulatorji igralne konzole za Linux
V tem članku bo navedena priljubljena programska oprema za emulacijo igralne konzole, ki je na voljo za Linux. Emulacija je sloj združljivosti program...