Apache Solr

Apache Solr Configurează un nod

Apache Solr Configurează un nod

Partea 1: Configurarea unui singur nod

Astăzi, stocarea electronică a documentelor sau datelor pe un dispozitiv de stocare este atât rapidă, cât și ușoară, fiind și comparativ ieftină. În uz este o referință de nume de fișier care este menită să descrie despre ce este vorba în document. Alternativ, datele sunt păstrate într-un sistem de gestionare a bazelor de date (SGBD), cum ar fi PostgreSQL, MariaDB sau MongoDB, pentru a numi doar câteva opțiuni. Mai multe medii de stocare sunt conectate local sau de la distanță la computer, cum ar fi stick USB, hard disk intern sau extern, Network Attached Storage (NAS), Cloud Storage sau GPU / Flash, ca într-un Nvidia V100 [10].

În schimb, procesul invers, găsirea documentelor potrivite într-o colecție de documente, este destul de complex. Cea mai mare parte necesită detectarea fără greșeală a formatului de fișier, indexarea documentului și extragerea conceptelor cheie (clasificarea documentelor). Aici intervine cadrul Apache Solr. Oferă o interfață practică pentru a efectua pașii menționați - construirea unui index de document, acceptarea interogărilor de căutare, efectuarea căutării efective și returnarea unui rezultat al căutării. Apache Solr formează astfel nucleul unei cercetări eficiente asupra unei baze de date sau a unui siloz de documente.

În acest articol, veți afla cum funcționează Apache Solr, cum să configurați un singur nod, să indexați documentele, să efectuați o căutare și să extrageți rezultatul.

Articolele de urmărire se bazează pe acesta și, în ele, discutăm alte cazuri de utilizare mai specifice, cum ar fi integrarea unui SGBD PostgreSQL ca sursă de date sau echilibrarea încărcării pe mai multe noduri.

Despre proiectul Apache Solr

Apache Solr este un cadru de motor de căutare bazat pe puternicul server de indexuri de căutare Lucene [2]. Scris în Java, este menținut sub umbrela Apache Software Foundation (ASF) [6]. Este disponibil gratuit sub licența Apache 2.

Subiectul „Găsiți din nou documente și date” joacă un rol foarte important în lumea software-ului, iar mulți dezvoltatori se ocupă intens de el. Site-ul Web Awesomeopensource [4] enumeră mai mult de 150 de proiecte open-source pentru motoarele de căutare. La începutul anului 2021, ElasticSearch [8] și Apache Solr / Lucene sunt cei doi câini de top atunci când vine vorba de căutarea unor seturi de date mai mari. Dezvoltarea motorului dvs. de căutare necesită multe cunoștințe, Frank face asta cu biblioteca AdvaS Advanced Search [3] bazată pe Python din 2002.

Configurarea Apache Solr:

Instalarea și funcționarea Apache Solr nu sunt complicate, este pur și simplu o serie întreagă de pași pe care trebuie să îi efectuați. Alocați aproximativ 1 oră pentru rezultatul primei interogări de date. Mai mult, Apache Solr nu este doar un proiect de hobby, ci este folosit și într-un mediu profesional. Prin urmare, mediul ales al sistemului de operare este conceput pentru o utilizare pe termen lung.

Ca mediu de bază pentru acest articol, folosim Debian GNU / Linux 11, care este următoarea versiune Debian (începând cu 2021) și se așteaptă să fie disponibilă la mijlocul anului 2021. Pentru acest tutorial, ne așteptăm să îl instalați deja, fie ca sistem nativ, într-o mașină virtuală precum VirtualBox, fie într-un container AWS.

În afară de componentele de bază, aveți nevoie de următoarele pachete software pentru a fi instalate pe sistem:

Aceste pachete sunt componente standard ale Debian GNU / Linux. Dacă nu este încă instalat, puteți să le instalați dintr-o dată ca utilizator cu drepturi administrative, de exemplu, root sau prin sudo, prezentat după cum urmează:

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

După ce ați pregătit mediul, al doilea pas este instalarea Apache Solr. De acum, Apache Solr nu este disponibil ca pachet Debian obișnuit. Prin urmare, este necesar să recuperați Apache Solr 8.8 din secțiunea de descărcare a site-ului web al proiectului [9] mai întâi. Utilizați comanda wget de mai jos pentru a o stoca în directorul / tmp al sistemului dumneavoastră:

$ wget -O / tmp https: // descărcări.apache.org / lucene / solr / 8.8.0 / solr-8.8.0.tgz

Comutatorul -O scurtează -output-document și face ca wget să stocheze tarul recuperat.gz din directorul dat. Arhiva are o dimensiune de aproximativ 190M. Apoi, despachetați arhiva în directorul / opt folosind tar. Ca rezultat, veți găsi două subdirectoare - / opt / solr și / opt / solr-8.8.0, în timp ce / opt / solr este configurat ca o legătură simbolică către acesta din urmă. Apache Solr vine cu un script de configurare pe care îl executați în continuare, este după cum urmează:

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

Acest lucru are ca rezultat crearea utilizatorului Linux solr rulează în serviciul Solr plus directorul său principal sub / var / solr stabilește serviciul Solr, adăugat cu nodurile sale corespunzătoare și pornește serviciul Solr pe portul 8983. Acestea sunt valorile implicite. Dacă nu sunteți mulțumit de ele, le puteți modifica în timpul instalării sau chiar mai târziu, deoarece scriptul de instalare acceptă comutatoare corespunzătoare pentru ajustări de configurare. Vă recomandăm să consultați documentația Apache Solr cu privire la acești parametri.

Software-ul Solr este organizat în următoarele directoare:

Mai detaliat, puteți citi despre aceste directoare în documentația Apache Solr [12].

Gestionarea Apache Solr:

Apache Solr rulează ca serviciu în fundal. Puteți porni în două moduri, fie folosind systemctl (prima linie) ca utilizator cu permisiuni administrative, fie direct din directorul Solr (a doua linie). Enumerăm ambele comenzi ale terminalului mai jos:

# systemctl începe solr
$ solr / bin / solr start

Oprirea Apache Solr se face în mod similar:

# systemctl stop solr
$ solr / bin / solr stop

Același mod este valabil și pentru repornirea serviciului Apache Solr:

# systemctl reporniți solr
$ solr / bin / solr restart

În plus, starea procesului Apache Solr poate fi afișată după cum urmează:

# systemctl status solr
starea $ solr / bin / solr

Ieșirea listează fișierul de serviciu care a fost pornit, atât marcajul de timp corespunzător, cât și mesajele jurnal. Figura de mai jos arată că serviciul Apache Solr a fost pornit pe portul 8983 cu procesul 632. Procesul rulează cu succes timp de 38 de minute.

Pentru a vedea dacă procesul Apache Solr este activ, puteți controla, de asemenea, folosind comanda ps în combinație cu grep. Aceasta limitează ieșirea ps la toate procesele Apache Solr care sunt active în prezent.

# ps topor | grep --color solr

Figura de mai jos demonstrează acest lucru pentru un singur proces. Vedeți apelul Java care este însoțit de o listă de parametri, de exemplu porturi de utilizare a memoriei (512M) pentru a asculta pe 8983 pentru interogări, 7983 pentru solicitări de oprire și tipul de conexiune (http).

Adăugarea utilizatorilor:

Procesele Apache Solr rulează cu un anumit utilizator numit solr. Acest utilizator este util în gestionarea proceselor Solr, încărcarea datelor și trimiterea cererilor. După configurare, utilizatorul solr nu are o parolă și se așteaptă să aibă una pentru a se conecta pentru a continua mai departe. Setați o parolă pentru utilizatorul solr ca root utilizator, aceasta este afișată după cum urmează:

# passwd solr

Administrare Solr:

Gestionarea Apache Solr se face folosind tabloul de bord Solr. Acest lucru este accesibil prin browserul web de la http: // localhost: 8983 / solr. Figura de mai jos arată imaginea principală.

În stânga, vedeți meniul principal care vă conduce la subsecțiunile pentru înregistrare, administrarea nucleelor ​​Solr, configurarea Java și informațiile de stare. Alegeți nucleul dorit folosind caseta de selecție de sub meniu. În partea dreaptă a meniului, sunt afișate informațiile corespunzătoare. Intrarea din meniul Tabloului de bord prezintă detalii suplimentare referitoare la procesul Apache Solr, precum și încărcarea curentă și utilizarea memoriei.

Vă rugăm să știți că conținutul tabloului de bord se modifică în funcție de numărul de nuclee Solr și de documentele care au fost indexate. Modificările afectează atât elementele de meniu, cât și informațiile corespunzătoare care sunt vizibile în partea dreaptă.

Înțelegerea modului în care funcționează motoarele de căutare:

Pur și simplu vorbind, motoarele de căutare analizează documentele, le clasifică și vă permit să efectuați o căutare pe baza clasificării acestora. Practic, procesul constă din trei etape, care sunt denumite crawling, indexing și ranking [13].

Crawling este prima etapă și descrie un proces prin care se colectează conținut nou și actualizat. Motorul de căutare folosește roboți care sunt, de asemenea, cunoscuți sub numele de păianjeni sau crawler, de unde termenul de crawling pentru a trece prin documentele disponibile.

A doua etapă se numește indexare. Conținutul colectat anterior este căutat prin transformarea documentelor originale într-un format pe care motorul de căutare îl înțelege. Cuvintele cheie și conceptele sunt extrase și stocate în baze de date (masive).

A treia etapă se numește clasament și descrie procesul de sortare a rezultatelor căutării în funcție de relevanța lor cu o interogare de căutare. Este obișnuit să afișați rezultatele în ordine descrescătoare, astfel încât rezultatul care are cea mai mare relevanță pentru interogarea căutătorului să fie primul.

Apache Solr funcționează similar procesului descris anterior în trei etape. La fel ca popularul motor de căutare Google, Apache Solr folosește o secvență de colectare, stocare și indexare a documentelor din diferite surse și le face disponibile / căutabile aproape în timp real.

Apache Solr folosește diferite modalități de indexare a documentelor, inclusiv următoarele [14]:

  1. Utilizarea unui Handler Request Handler atunci când încărcați documentele direct în Solr. Aceste documente trebuie să fie în format JSON, XML / XSLT sau CSV.
  2. Utilizarea Extracting Request Handler (Solr Cell). Documentele trebuie să fie în format PDF sau Office, care sunt acceptate de Apache Tika.
  3. Folosind Data Import Handler, care transmite date dintr-o bază de date și le cataloghează folosind nume de coloane. Handlerul de importare a datelor preluează date din e-mailuri, fluxuri RSS, date XML, baze de date și fișiere text simple ca surse.

Un gestionar de interogări este utilizat în Apache Solr atunci când este trimisă o cerere de căutare. Handlerul de interogare analizează interogarea dată pe baza aceluiași concept al handlerului indexului pentru a se potrivi cu interogarea și documentele indexate anterior. Meciurile sunt clasificate în funcție de oportunitatea sau relevanța lor. Un scurt exemplu de interogare este demonstrat mai jos.

Încărcarea documentelor:

Din motive de simplitate, folosim un exemplu de set de date pentru următorul exemplu, care este deja furnizat de Apache Solr. Încărcarea documentelor se face ca utilizatorul solr. Pasul 1 este crearea unui nucleu cu numele techproducts (pentru un număr de articole tech).

$ solr / bin / solr create -c techproducts

Totul este în regulă dacă vedeți mesajul „S-au creat noi„ produse tehnice ”de bază”. Pasul 2 este adăugarea de date (date XML de la exampledocs) la produsele tehnologice de bază create anterior. În utilizare este postarea instrumentului care este parametrizată cu -c (numele nucleului) și documentele care trebuie încărcate.

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

Aceasta va avea ca rezultat rezultatul prezentat mai jos și va conține întregul apel plus cele 14 documente care au fost indexate.

De asemenea, Tabloul de bord arată modificările. O nouă intrare denumită techproducts este vizibilă în meniul derulant din partea stângă, iar numărul de documente corespunzătoare a fost modificat în partea dreaptă. Din păcate, nu este posibilă o vizualizare detaliată a seturilor de date brute.

În cazul în care nucleul / colecția trebuie eliminat, utilizați următoarea comandă:

$ solr / bin / solr delete -c techproducts

Interogarea datelor:

Apache Solr oferă două interfețe pentru interogarea datelor: prin tabloul de bord web și linia de comandă. Vom explica ambele metode mai jos.

Trimiterea interogărilor prin tabloul de bord Solr se face după cum urmează:

Linia de comandă acceptă aceeași interogare ca în Tabloul de bord. Diferența este că trebuie să știți numele câmpurilor de interogare. Pentru a trimite aceeași interogare ca mai sus, trebuie să executați următoarea comandă într-un terminal:

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

Ieșirea este în format JSON, așa cum se arată mai jos. Rezultatul constă într-un antet de răspuns și răspunsul real. Răspunsul constă din două seturi de date.

Încheierea:

Felicitări! Ai atins prima etapă cu succes. Infrastructura de bază este configurată și ați învățat cum să încărcați și să interogați documente.

Următorul pas va acoperi modul de rafinare a interogării, formularea de interogări mai complexe și înțelegerea diferitelor formulare web furnizate de pagina de interogare Apache Solr. De asemenea, vom discuta despre cum să post-procesăm rezultatul căutării folosind diferite formate de ieșire, cum ar fi XML, CSV și JSON.

Despre autori:

Jacqui Kabeta este ecologist, cercetător avid, formator și mentor. În mai multe țări africane, a lucrat în industria IT și în mediile ONG-urilor.

Frank Hofmann este dezvoltator IT, trainer și autor și preferă să lucreze din Berlin, Geneva și Cape Town. Co-autor al cărții de gestionare a pachetelor Debian disponibil de pe dpmb.org

How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...