Apache Solr

Apache Solr Asenna solmu

Apache Solr Asenna solmu

Osa 1: Yhden solmun asettaminen

Tänä päivänä asiakirjojen tai tietojen tallentaminen sähköisesti tallennuslaitteelle on sekä nopeaa että helppoa, myös suhteellisen halpaa. Käytössä on tiedostonimen viite, joka on tarkoitettu kuvaamaan, mistä dokumentissa on kyse. Vaihtoehtoisesti tiedot säilytetään tietokannan hallintajärjestelmässä (DBMS), kuten PostgreSQL, MariaDB tai MongoDB, vain muutaman vaihtoehdon nimeämiseksi. Useat tallennusvälineet on joko paikallisesti tai etänä kytketty tietokoneeseen, kuten USB-tikku, sisäinen tai ulkoinen kiintolevy, verkkotallennustila (NAS), pilvitallennustila tai GPU / Flash-pohjainen, kuten Nvidia V100: ssa [10].

Sen sijaan päinvastainen prosessi, oikean asiakirjan löytäminen asiakirjakokoelmasta, on melko monimutkainen. Se edellyttää enimmäkseen tiedostomuodon havaitsemista virheettömästi, asiakirjan indeksoinnin ja avainkäsitteiden purkamisen (asiakirjan luokittelu). Tässä tulee Apache Solr -kehys. Se tarjoaa käytännöllisen käyttöliittymän mainittujen vaiheiden suorittamiseen - asiakirjahakemiston luominen, hakukyselyjen hyväksyminen, varsinaisen haun tekeminen ja hakutuloksen palauttaminen. Apache Solr muodostaa siten ytimen tietokannan tai asiakastilan tehokkaaseen tutkimukseen.

Tässä artikkelissa opit, miten Apache Solr toimii, kuinka määrittää yksi solmu, indeksoida asiakirjoja, tehdä haku ja noutaa tulos.

Seuraavat artikkelit perustuvat tähän artikkeliin, ja niissä keskustellaan muista, tarkemmista käyttötapauksista, kuten PostgreSQL DBMS: n integrointi tietolähteeksi tai kuormituksen tasaus useiden solmujen välillä.

Tietoja Apache Solr -projektista

Apache Solr on hakukehys, joka perustuu tehokkaaseen Lucene-hakemistopalvelimeen [2]. Kirjoitettu Java-muodossa, sitä ylläpidetään Apache Software Foundationin (ASF) [6] alaisuudessa. Se on vapaasti saatavilla Apache 2 -lisenssillä.

Aihe "Löydä asiakirjoja ja tietoja uudelleen" on erittäin tärkeä rooli ohjelmistomaailmassa, ja monet kehittäjät käsittelevät sitä intensiivisesti. Awesomeopensource-verkkosivustolla [4] luetellaan yli 150 avoimen lähdekoodin hakukoneprojektia. Vuodesta 2021 alkaen ElasticSearch [8] ja Apache Solr / Lucene ovat kaksi suurinta koiraa suurempien tietojoukkojen etsinnässä. Hakukoneesi kehittäminen vaatii paljon tietoa, Frank tekee sen Python-pohjaisen AdvaS Advanced Search [3] -kirjaston kanssa vuodesta 2002 lähtien.

Apache Solrin määrittäminen:

Apache Solrin asennus ja käyttö eivät ole monimutkaisia, se on yksinkertaisesti koko joukko vaiheita, jotka sinun on suoritettava. Ensimmäisen datakyselyn tulokselle annetaan noin 1 tunti. Lisäksi Apache Solr ei ole vain harrastusprojekti, vaan sitä käytetään myös ammatillisessa ympäristössä. Siksi valittu käyttöjärjestelmäympäristö on suunniteltu pitkäaikaiseen käyttöön.

Tämän artikkelin perusympäristönä käytämme Debian GNU / Linux 11: tä, joka on tuleva Debian-julkaisu (vuoden 2021 alusta) ja jonka odotetaan olevan saatavana vuoden 2021 puolivälissä. Tätä opetusohjelmaa varten oletamme, että olet jo asentanut sen - joko natiivijärjestelmänä - virtuaalikoneeseen, kuten VirtualBox, tai AWS-säilöön.

Peruskomponenttien lisäksi tarvitset seuraavat ohjelmistopaketit asennettavaksi järjestelmään:

Nämä paketit ovat Debian GNU / Linuxin vakiokomponentteja. Jos niitä ei vielä ole asennettu, voit asentaa ne uudelleen kerralla käyttäjänä, jolla on järjestelmänvalvojan oikeudet, esimerkiksi root tai sudo, seuraavasti:

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

Ympäristön valmistelun jälkeen 2. vaihe on Apache Solrin asennus. Tällä hetkellä Apache Solr ei ole saatavana tavallisena Debian-pakettina. Siksi Apache Solr 8 täytyy noutaa.8 ensin projektin verkkosivuston latausosasta [9]. Käytä alla olevaa wget-komentoa tallentaaksesi sen järjestelmän / tmp-hakemistoon:

$ wget -O / tmp https: // lataa.apache.org / luseeni / solr / 8.8.0 / solr-8.8.0.tgz

Kytkin -O lyhentää -output-asiakirjaa ja saa wgetin tallentamaan haetun tervan.gz-tiedosto annetussa hakemistossa. Arkiston koko on noin 190 miljoonaa. Pura seuraavaksi arkisto / opt-hakemistoon käyttäen tervaa. Seurauksena on kaksi alihakemistoa - / opt / solr ja / opt / solr-8.8.0, kun taas / opt / solr on asetettu symboliseksi linkiksi jälkimmäiseen. Apache Solrin mukana tulee asennusohjelma, jonka suoritat seuraavaksi, se on seuraava:

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

Tämän seurauksena luodaan Linux-käyttäjä solr suoritetaan Solr-palvelussa, ja hänen kotihakemistonsa / var / solr -ohjelmassa perustetaan Solr-palvelu, lisätään vastaavilla solmuilla ja käynnistetään Solr-palvelu portissa 8983. Nämä ovat oletusarvot. Jos olet tyytymätön heihin, voit muokata niitä asennuksen aikana tai jopa myöhästyä, koska asennuskomentosarja hyväksyy vastaavat kytkimet asennuksen säätöihin. Suosittelemme, että tutustut Apache Solrin näihin parametreihin.

Solr-ohjelmisto on järjestetty seuraaviin hakemistoihin:

Voit lukea tarkemmin näistä hakemistoista Apache Solr -dokumentaatiosta [12].

Apache Solrin hallinta:

Apache Solr toimii palveluna taustalla. Voit käynnistää sen kahdella tavalla, joko käyttämällä systemctl: tä (ensimmäinen rivi) käyttäjänä, jolla on järjestelmänvalvojan oikeudet, tai suoraan Solr-hakemistosta (toinen rivi). Alla luetellaan molemmat päätelaitteen komennot:

# systemctl start solr
$ solr / bin / solr start

Apache Solrin pysäyttäminen tapahtuu samalla tavalla:

# systemctl stop solr
$ solr / bin / solr stop

Samalla tavalla käynnistetään Apache Solr -palvelu uudelleen:

# systemctl uudelleenkäynnistys solr
$ solr / bin / solr käynnistä uudelleen

Lisäksi Apache Solr -prosessin tila voidaan näyttää seuraavasti:

# systemctl status solr
$ solr / bin / solr-tila

Lähdössä luetellaan aloitettu palvelutiedosto, sekä vastaavat aikaleimat että lokiviestit. Alla oleva kuva osoittaa, että Apache Solr -palvelu aloitettiin portissa 8983 prosessilla 632. Prosessi on onnistunut 38 minuutin ajan.

Jos haluat nähdä, onko Apache Solr -prosessi aktiivinen, voit myös tarkistaa ruudun käyttämällä komentoa ps ja grep. Tämä rajoittaa ps-lähdön kaikkiin tällä hetkellä aktiivisiin Apache Solr -prosesseihin.

# ps kirves | grep --värisolr

Alla oleva kuva osoittaa tämän yhdelle prosessille. Näet Java-puhelun, johon liittyy parametriluettelo, esimerkiksi muistin käyttöportit (512 M) kuunnellaksesi 8983-kyselyjä, 7983-pysäytyspyyntöjä ja yhteyden tyyppi (http).

Käyttäjien lisääminen:

Apache Solr -prosessit suoritetaan tietyn käyttäjän nimellä Solr. Tämä käyttäjä on hyödyllinen Solr-prosessien hallinnassa, tietojen lataamisessa ja pyyntöjen lähettämisessä. Asennuksen yhteydessä käyttäjän solrilla ei ole salasanaa, ja sillä odotetaan olevan sellainen kirjautua sisään jatkaakseen. Aseta salasana käyttäjän solr-tyyppiselle root-käyttäjälle, se näkyy seuraavasti:

# passwd solr

Solrin hallinto:

Apache Solrin hallinta tapahtuu Solr-hallintapaneelin avulla. Tähän pääsee verkkoselaimen kautta osoitteesta http: // localhost: 8983 / solr. Alla olevassa kuvassa näkyy päänäkymä.

Vasemmalla näet päävalikon, joka johtaa sinut lokien kirjaamiseen, Solr-ytimien hallintaan, Java-asetuksiin ja tilatietoihin. Valitse haluamasi ydin valikon alla olevasta valintaruudusta. Valikon oikealla puolella näytetään vastaavat tiedot. Kojelauta-valikkokohta näyttää lisätietoja Apache Solr -prosessista sekä nykyisestä kuormituksesta ja muistin käytöstä.

Huomaa, että hallintapaneelin sisältö muuttuu Solr-ytimien lukumäärän ja indeksoitujen asiakirjojen mukaan. Muutokset vaikuttavat sekä valikkokohtiin että vastaaviin tietoihin, jotka näkyvät oikealla.

Hakukoneiden toiminnan ymmärtäminen:

Yksinkertaisesti sanottuna hakukoneet analysoivat asiakirjoja, luokittelevat ne ja antavat sinun tehdä hakuja niiden luokittelun perusteella. Pohjimmiltaan prosessi koostuu kolmesta vaiheesta, joita kutsutaan indeksoinniksi, indeksoinniksi ja luokitteluksi [13].

Indeksointi on ensimmäinen vaihe ja kuvaa prosessia, jolla uutta ja päivitettyä sisältöä kerätään. Hakukone käyttää robotteja, jotka tunnetaan myös nimellä hämähäkit tai indeksoijat, joten termi indeksointi käy läpi saatavilla olevia asiakirjoja.

Toista vaihetta kutsutaan indeksointi. Aikaisemmin kerätty sisältö tehdään haettavaksi muuttamalla alkuperäiset asiakirjat hakukoneen ymmärtämään muotoon. Avainsanat ja käsitteet puretaan ja tallennetaan (massiivisiin) tietokantoihin.

Kolmas vaihe kutsutaan sijoitus ja kuvaa prosessin, jolla hakutulokset lajitellaan niiden osuvuuden mukaan hakukyselyllä. Tulosten näyttäminen on yleistä laskevassa järjestyksessä siten, että etsimäsi kyselyyn eniten liittyvä tulos tulee ensin.

Apache Solr toimii samalla tavalla kuin aiemmin kuvattu kolmivaiheinen prosessi. Kuten suosittu Google-hakukone, Apache Solr käyttää sarjaa asiakirjojen keräämisestä, tallentamisesta ja indeksoinnista eri lähteistä ja tekee niistä saatavana / haettavissa melkein reaaliajassa.

Apache Solr käyttää erilaisia ​​tapoja indeksoida asiakirjoja, mukaan lukien seuraavat [14]:

  1. Hakemistopyyntöjen käsittelijän käyttäminen, kun lataat asiakirjoja suoraan Solriin. Näiden asiakirjojen tulee olla JSON-, XML / XSLT- tai CSV-muodossa.
  2. Poimintapyyntöjen käsittelijän (Solr Cell) käyttäminen. Asiakirjojen tulee olla PDF- tai Office-formaatteja, joita Apache Tika tukee.
  3. Data Import Handler -sovelluksen avulla, joka välittää tietoja tietokannasta ja luetteloi ne sarakkeiden nimillä. Data Import Handler hakee tietoja sähköposteista, RSS-syötteistä, XML-tiedoista, tietokannoista ja tekstitiedostoista lähteinä.

Kyselykäsittelijää käytetään Apache Solrissa, kun hakupyyntö lähetetään. Kyselykäsittelijä analysoi annetun kyselyn hakemistokäsittelijän saman käsitteen perusteella vastaamaan kyselyä ja aiemmin indeksoituja asiakirjoja. Ottelut järjestetään niiden tarkoituksenmukaisuuden tai relevanssin mukaan. Lyhyt esimerkki kyselystä on esitetty alla.

Asiakirjojen lataaminen:

Yksinkertaisuuden vuoksi käytämme esimerkkitietojoukkoa seuraavaan esimerkkiin, jonka Apache Solr jo tarjoaa. Asiakirjojen lataaminen tapahtuu käyttäjän solrina. Vaihe 1 on ytimen luominen nimellä techproducts (useille teknisille tuotteille).

$ solr / bin / solr luo -c -teknologiatuotteita

Kaikki on hyvin, jos näet viestin "Luodut uudet ydinteknologiatuotteet". Vaihe 2 lisää dataa (XML-tietoja esimerkkitiedoista) aiemmin luotuihin ydinteknologiatuotteisiin. Käytössä on -c (ytimen nimi) parametroitava työkalupylväs ja ladattavat asiakirjat.

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

Tämä johtaa alla esitettyyn tulokseen ja sisältää koko puhelun sekä indeksoidut 14 asiakirjaa.

Kojelauta näyttää myös muutokset. Uusi merkintä nimeltä techproducts on näkyvissä vasemmanpuoleisessa pudotusvalikossa, ja vastaavien asiakirjojen määrä muuttui oikealla puolella. Valitettavasti yksityiskohtainen näkymä raaka-aineistoista ei ole mahdollista.

Jos ydin / kokoelma on poistettava, käytä seuraavaa komentoa:

$ solr / bin / solr poista -c -tekniset tuotteet

Kyselytiedot:

Apache Solr tarjoaa kaksi käyttöliittymää tietojen kyselyyn: verkkopohjaisen hallintapaneelin ja komentorivin kautta. Selitämme molemmat menetelmät alla.

Kyselyjen lähettäminen Solr-hallintapaneelin kautta tapahtuu seuraavasti:

Komentorivi hyväksyy saman kyselyn kuin hallintapaneelissa. Erona on, että sinun on tiedettävä kyselykenttien nimi. Jotta voit lähettää saman kyselyn kuin yllä, sinun on suoritettava seuraava komento terminaalissa:

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

Lähtö on JSON-muodossa, kuten alla on esitetty. Tulos koostuu vastausotsikosta ja todellisesta vastauksesta. Vastaus koostuu kahdesta tietojoukosta.

Käärimistä:

Onnittelut! Olet saavuttanut ensimmäisen vaiheen menestyksekkäästi. Perusinfrastruktuuri on määritetty, ja olet oppinut asiakirjojen lataamisen ja kyselyn.

Seuraava vaihe käsittelee kyselyn tarkentamista, monimutkaisempien kyselyjen muotoilua ja Apache Solr -kyselysivun tarjoamien verkkolomakkeiden ymmärtämistä. Keskustelemme myös siitä, miten hakutulos voidaan jälkikäsitellä käyttämällä erilaisia ​​tulostusmuotoja, kuten XML, CSV ja JSON.

Kirjoittajista:

Jacqui Kabeta on ympäristönsuojelija, innokas tutkija, kouluttaja ja mentori. Hän on työskennellyt useissa Afrikan maissa IT-teollisuudessa ja kansalaisjärjestöjen ympäristössä.

Frank Hofmann on tietotekniikan kehittäjä, kouluttaja ja kirjailija ja mieluummin työskentelee Berliinistä, Genevestä ja Kapkaupungista. Debian Package Management Book -kirjan kirjoittaja, saatavana osoitteesta dpmb.org

Parhaat pelit, joita voi seurata käsien seurannalla
Oculus Quest esitteli äskettäin loistavan ajatuksen seurannasta ilman ohjaimia. Yhä kasvavan määrän pelejä ja aktiviteetteja, jotka tukevat tukea joko...
Kuinka näyttää OSD-peitto koko näytön Linux-sovelluksissa ja peleissä
Koko näytön pelien pelaaminen tai sovellusten käyttäminen häiriöttömässä koko näytön tilassa voi estää sinut paneelissa tai tehtäväpalkissa näkyvistä ...
Viisi parasta pelin kaappauskorttia
Olemme kaikki nähneet ja rakastaneet suoratoistopelejä YouTubessa. PewDiePie, Jakesepticye ja Markiplier ovat vain joitain huippupelaajista, jotka ova...