Del 1: Sette opp en enkelt node
I dag er det både raskt og enkelt å lagre dokumenter eller data på en lagringsenhet. I bruk er en filnavn -referanse som er ment å beskrive hva dokumentet handler om. Alternativt holdes data i et databaseadministrasjonssystem (DBMS) som PostgreSQL, MariaDB eller MongoDB for bare å navngi noen få alternativer. Flere lagringsmedier er enten lokalt eller eksternt koblet til datamaskinen, for eksempel USB-pinne, intern eller ekstern harddisk, nettverkstilt lagring (NAS), skylagring eller GPU/Flash-basert, som i en NVIDIA V100 [10].
Derimot er den omvendte prosessen, som finner de riktige dokumentene i en dokumentsamling, ganske kompleks. Det krever stort sett å oppdage filformatet uten feil, indeksering av dokumentet og trekke ut nøkkelkonseptene (dokumentklassifisering). Det er her Apache Solr -rammeverket kommer inn. Det tilbyr et praktisk grensesnitt for å gjøre trinnene som er nevnt - å bygge en dokumentindeks, godta søkespørsmål, gjøre selve søket og returnere et søkeresultat. Apache Solr danner dermed kjernen for effektiv forskning på en database eller dokumentsilo.
I denne artikkelen vil du lære hvordan Apache Solr fungerer, hvordan du setter opp en enkelt node, indeksdokumenter, gjør et søk og henter resultatet.
Oppfølgingsartiklene bygger på denne, og i dem diskuterer vi andre, mer spesifikke brukssaker som å integrere en PostgreSQL DBMS som datakilde eller lastbalansering over flere noder.
Om Apache Solr -prosjektet
Apache Solr er et rammeverk for søkemotor basert på den kraftige Lucene Search Index Server [2]. Skrevet i Java, opprettholdes det under paraplyen til Apache Software Foundation (ASF) [6]. Det er fritt tilgjengelig under Apache 2 -lisensen.
Temaet "Finn dokumenter og data igjen" spiller en veldig viktig rolle i programvareverdenen, og mange utviklere takler det intenst. Nettstedet AwesomeOpensource [4] viser mer enn 150 søkemotorens open source-prosjekter. Fra begynnelsen av 2021 er Elasticsearch [8] og Apache Solr/Lucene de to øverste hundene når det gjelder å søke etter større datasett. Å utvikle søkemotoren din krever mye kunnskap, Frank gjør det med det Python-baserte Advas Advanced Search [3] Library siden 2002.
Sette opp Apache Solr:
Installasjonen og driften av Apache Solr er ikke komplisert, det er ganske enkelt en hel serie trinn som skal utføres av deg. Tillat omtrent 1 time for resultatet av den første dataforespørselen. Videre er Apache Solr ikke bare et hobbyprosjekt, men brukes også i et profesjonelt miljø. Derfor er det valgte operativsystemmiljøet designet for langvarig bruk.
Som basismiljø for denne artikkelen bruker vi Debian GNU/Linux 11, som er den kommende Debian-utgivelsen (fra begynnelsen av 2021) og forventes å være tilgjengelig i midten av 2021. For denne opplæringen forventer vi at du allerede har installert den, enten som det opprinnelige systemet, i en virtuell maskin som VirtualBox, eller en AWS-beholder.
Bortsett fra de grunnleggende komponentene, trenger du følgende programvarepakker som skal installeres på systemet:
Disse pakkene er standardkomponenter til Debian GNU/Linux. Hvis du ennå ikke er installert, kan du legge dem ut på en gang som bruker med administrative rettigheter, for eksempel rot eller via sudo, vist som følger:
# apt-get install curl standard-java libcommons-cli-java libxerces2-java libtika-java
Etter å ha forberedt miljøet, er det andre trinnet installasjonen av Apache Solr. Per nå er Apache Solr ikke tilgjengelig som en vanlig Debian -pakke. Derfor er det påkrevd å hente Apache Solr 8.8 fra nedlastingsdelen av prosjektnettstedet [9] først. Bruk WGET -kommandoen nedenfor for å lagre den i /TMP -katalogen til systemet ditt:
$ wget -o/tmp https: // nedlastinger.Apache.org/lucene/solr/8.8.0/Solr-8.8.0.tgz
Bryteren -O forkortes -output -Document og gjør WGET -butikk til den hentede tjære.GZ -fil i den gitte katalogen. Arkivet har en størrelse på omtrent 190m. Deretter pakker du ut arkivet i /OPT -katalogen ved hjelp av TAR. Som et resultat vil du finne to underkataloger - /OPT /SOLR og /OPT /SOLR -8.8.0, mens /opt /solr er satt opp som en symbolsk kobling til den siste. Apache Solr kommer med et installasjonsskript som du kjører videre, det er som følger:
# /opt /solr-8.8.0/bin/install_solr_service.sh
Dette resulterer i opprettelsen av Linux -brukeren Solr kjører i Solr -tjenesten pluss hans hjemmekatalog under /var /Solr etablerer Solr -tjenesten, lagt til med de tilsvarende noder og starter Solr -tjenesten på port 8983. Dette er standardverdiene. Hvis du ikke er fornøyd med dem, kan du endre dem under installasjon eller til og med latersince Installasjonsskriptet godtar tilsvarende brytere for oppsettsjusteringer. Vi anbefaler deg å se på Apache Solr -dokumentasjonen angående disse parametrene.
Solr -programvaren er organisert i følgende kataloger:
Mer detaljert kan du lese om disse katalogene i Apache Solr -dokumentasjonen [12].
Administrere Apache Solr:
Apache Solr kjører som en tjeneste i bakgrunnen. Du kan starte det på to måter, enten ved å bruke SystemCTL (First Line) som bruker med administrative tillatelser eller direkte fra SOLR -katalogen (andre linje). Vi viser begge terminalkommandoer nedenfor:
# SystemCTL Start Solr
$ Solr/bin/Solr Start
Å stoppe Apache Solr gjøres på samme måte:
# SystemCTL Stop Solr
$ Solr/bin/Solr Stop
På samme måte gjelder å starte Apache Solr -tjenesten på nytt:
# SystemCTL Restart Solr
$ Solr/bin/solr omstart
Videre kan statusen til Apache Solr -prosessen vises som følger:
# SystemCTL Status Solr
$ solr/bin/solr status
Utgangen viser servicefilen som ble startet, både de tilsvarende tidsstempel- og loggmeldingene. Figuren nedenfor viser at Apache Solr -tjenesten ble startet på port 8983 med prosess 632. Prosessen kjører vellykket i 38 minutter.
For å se om Apache Solr-prosessen er aktiv, kan du også krysse sjekk ved hjelp av PS-kommandoen i kombinasjon med grep. Dette begrenser PS -utgangen til alle Apache Solr -prosessene som for tiden er aktive.
# PS AX | grep -farge solr
Figuren nedenfor viser dette for en enkelt prosess. Du ser samtalen til Java som er ledsaget av en liste over parametere, for eksempel minnebruk (512m) porter for å lytte på 8983 for spørsmål, 7983 for stoppforespørsler, og type tilkobling (HTTP).
Legge til brukere:
Apache Solr -prosessene kjøres med en bestemt bruker som heter Solr. Denne brukeren er nyttig i å administrere SOLR -prosesser, laste opp data og sende forespørsler. Ved oppsett har ikke brukeren Solr et passord og forventes å ha en å logge inn for å fortsette videre. Angi et passord for brukerens solr som brukerrot, det vises som følger:
# passwd solr
Solr -administrasjon:
Administrere Apache Solr er ferdig med Solr -dashbordet. Dette er tilgjengelig via nettleser fra http: // localhost: 8983/solr. Figuren nedenfor viser hovedvisningen.
På venstre side ser du hovedmenyen som fører deg til underavsnitt for logging, administrasjon av Solr -kjernene, Java -oppsettet og statusinformasjonen. Velg ønsket kjerne ved hjelp av valgboksen under menyen. På høyre side av menyen vises den tilsvarende informasjonen. Dashboard -menyoppføringen viser ytterligere detaljer angående Apache Solr -prosessen, samt gjeldende belastnings- og minnebruk.
Vær oppmerksom på at innholdet i dashbordets endringer avhengig av antall solr -kjerner, og dokumentene som er indeksert. Endringer påvirker både menyelementene og den tilsvarende informasjonen som er synlig til høyre.
Forstå hvordan søkemotorer fungerer:
Enkelt å snakke, analyser søkemotorer dokumenter, kategoriser dem og lar deg gjøre et søk basert på kategoriseringen deres. I utgangspunktet består prosessen av tre trinn, som kalles å krype, indeksere og rangere [13].
Krypende er den første fasen og beskriver en prosess der nytt og oppdatert innhold samles inn. Søkemotoren bruker roboter som også er kjent som edderkopper eller crawlers, derav begrepet kryping for å gå gjennom tilgjengelige dokumenter.
Den andre fasen kalles indeksering. Det tidligere innsamlede innholdet gjøres søkbart ved å transformere originaldokumentene til et format søkemotoren forstår. Nøkkelord og konsepter blir trukket ut og lagret i (massive) databaser.
Den tredje fasen kalles rangering og beskriver prosessen med å sortere søkeresultatene i henhold til deres relevans med et søk. Det er vanlig å vise resultatene i synkende rekkefølge, slik at resultatet som har den høyeste relevansen for søkerens spørring kommer først.
Apache Solr fungerer på samme måte som den tidligere beskrevne tre-trinns prosessen. I likhet med den populære søkemotoren Google, bruker Apache Solr en sekvens av samling, lagring og indeksering av dokumenter fra forskjellige kilder og gjør dem tilgjengelige/søkbare i nær sanntid.
Apache Solr bruker forskjellige måter å indeksere dokumenter inkludert følgende [14]:
En spørringshåndterer brukes i Apache Solr når en søkeforespørsel sendes. Query Handler analyserer den gitte spørringen basert på det samme konseptet med indeksbehandleren for å matche spørringen og tidligere indekserte dokumenter. Kampene er rangert etter deres hensiktsmessighet eller relevans. Et kort eksempel på spørring er demonstrert nedenfor.
Last opp dokumenter:
For enkelhets skyld bruker vi et eksempel på datasettet for følgende eksempel som allerede er levert av Apache Solr. Last opp dokumenter gjøres som bruker Solr. Trinn 1 er opprettelsen av en kjerne med navnet TechProducts (for en rekke teknologiske varer).
$ Solr/bin/Solr Create -C TechProducts
Alt er i orden hvis du ser meldingen "opprettet nye kjerne" techproducts "". Trinn 2 legger til data (XML -data fra eksempler på) til de tidligere opprettede Core TechProducts. I bruk er verktøyposten som er parameterisert av -c (kjernen navn) og dokumentene som skal lastes opp.
$ solr/bin/post -c techproducts solr/eksempel/eksempler på/*.XML
Dette vil resultere i utdata vist nedenfor og vil inneholde hele samtalen pluss de 14 dokumentene som er indeksert.
Også dashbordet viser endringene. En ny oppføring som heter TechProducts er synlig i rullegardinmenyen på venstre side, og antall tilsvarende dokumenter endret på høyre side. Dessverre er ikke et detaljert syn på de rå datasettene mulig.
I tilfelle kjernen/samlingen må fjernes, bruk følgende kommando:
$ Solr/bin/Solr Delete -C TechProducts
Spørring av data:
Apache Solr tilbyr to grensesnitt til spørringsdata: via det nettbaserte dashbordet og kommandolinjen. Vi vil forklare begge metodene nedenfor.
Å sende spørsmål via Solr Dashboard gjøres som følger:
Kommandolinjen godtar den samme spørringen som i dashbordet. Forskjellen er at du må vite navnet på spørringsfeltene. For å sende den samme spørringen som ovenfor, må du kjøre følgende kommando i en terminal:
$ krøll
http: // localhost: 8983/solr/techproducts/spørring?Q = ”Manu”: ”Belkin
Utgangen er i JSON -format, som vist nedenfor. Resultatet består av en responsoverskrift og den faktiske responsen. Responsen består av to datasett.
Innpakning:
Gratulerer! Du har oppnådd den første fasen med suksess. Den grunnleggende infrastrukturen er satt opp, og du har lært hvordan du laster opp og spørringsdokumenter.
Neste trinn vil dekke hvordan du avgrenser spørringen, formulerer mer komplekse spørsmål og forstår de forskjellige webskjemaene levert av Apache Solr -spørringssiden. Vi vil også diskutere hvordan du kan etterbehandle søkeresultatet ved å bruke forskjellige utgangsformater som XML, CSV og JSON.
Om forfatterne:
Jacqui Kabeta er en miljøvern, ivrig forsker, trener og mentor. I flere afrikanske land har hun jobbet i IT -bransjen og NGO -miljøer.
Frank Hofmann er en IT -utvikler, trener og forfatter og foretrekker å jobbe fra Berlin, Genève og Cape Town. Medforfatter av Debian Package Management Book tilgjengelig fra DPMB.org