Apache Solr Tutorial

Apache Solr Tutorial
I denne leksjonen vil vi se hvordan vi kan bruke Apache Solr til å lagre data og hvordan vi kan kjøre forskjellige spørsmål på det.

Hva er Apache Solr

Apache Solr er en av de mest populære NoSQL-databasene som kan brukes til å lagre data og spørre dem i nær sanntid. Det er basert på Apache Lucene og er skrevet i Java. Akkurat som Elasticsearch, støtter den databasespørsmål gjennom REST APIer. Dette betyr at vi kan bruke enkle HTTP -anrop og bruke HTTP -metoder som Get, Post, Put, Delete etc. for å få tilgang til data. Det gir også et alternativ for å få data i form av XML eller JSON gjennom REST API -er.

Arkitektur: Apache Solr

Før vi kan begynne å jobbe med Apache Solr, må vi forstå komponentene som utgjør Apache Solr. La oss se på noen komponenter den har:

Apache Solr Architecture

Merk at bare hovedkomponenter for Solr er vist i figur ovenfor. La oss forstå deres funksjonalitet også her:

  • Be om håndterere: Forespørslene en klient stiller til Solr, administreres av en forespørselshandler. Forespørselen kan være alt fra å legge til en ny post til å oppdatere en indeks i Solr. Håndterere identifiserer typen forespørsler fra HTTP -metoden som brukes med forespørsels kartlegging.
  • Søkekomponent: Dette er en av de viktigste komponent Solr er kjent for. Søkekomponent tar seg av å utføre søkelaterte operasjoner som fuzziness, stavekontroller, semester spørsmål osv.
  • Spørringsfarer: Dette er komponenten som faktisk analyserer spørringen en klient går til forespørselshandleren og bryter en spørring i flere deler som kan forstås av den underliggende motoren
  • Responsforfatter: Denne komponenten er ansvarlig for å administrere utgangsformatet for spørsmålene som sendes til motoren. Responsforfatter lar oss gi en utdata i forskjellige formater som XML, JSON etc.
  • Analysator/tokenizer: Lucene Engine forstår spørsmål i form av flere symboler. Solr analyserer spørringen, bryter den inn i flere symboler og overfører den til Lucene -motoren.
  • Oppdater forespørselsprosessor: Når en spørring kjøres og den utfører operasjoner som å oppdatere en indeks og data relatert til den, er oppdateringsforespørselsprosessorkomponenten ansvarlig for å administrere dataene i indeksen og endre den.

Komme i gang med Apache Solr

For å begynne å bruke Apache Solr, må den installeres på maskinen. For å gjøre dette, les install Apache Solr på Ubuntu.

Forsikre deg om at du har en aktiv SOLR -installasjon hvis du vil prøve eksempler vi presenterer senere på leksjonen og admin -siden er tilgjengelig på Localhost:

Apache Solr hjemmeside

Sette inn data

For å starte, la oss vurdere en samling i Solr som vi kaller som linux_hint_collection. Det er ikke nødvendig å eksplisitt definere denne samlingen som når vi setter inn det første objektet, samlingen blir laget automatisk. La oss prøve vår første REST API -samtale for å sette inn et nytt objekt i samlingen som heter linux_hint_collection.

Sette inn data

Curl -x Post -h 'Content -Type: Application/JSON'
'http: // localhost: 8983/solr/linux_hint_collection/update/json/docs'--data-binary '

"Id": "Iduye",
"Navn": "Shubham"
'

Dette er hva vi kommer tilbake med denne kommandoen:

Kommando for å sette inn data i Solr

Data kan også settes inn ved hjelp av Solr -hjemmesiden vi så på tidligere. La oss prøve dette her slik at ting er klart:

Sett inn data via Solr -hjemmesiden

Siden Solr har en utmerket måte å samspill med HTTP RESTful APIer, vil vi demonstrere DB -interaksjon ved å bruke de samme API -ene fra nå og fremover og vil ikke fokusere mye på å sette inn data gjennom Solr -websiden.

Liste opp alle samlinger

Vi kan liste opp alle samlinger i Apache Solr ved hjelp av et REST API også. Her er kommandoen vi kan bruke:

Liste opp alle samlinger

Curl http: // localhost: 8983/solr/admin/collections?Handlinger = Liste & WT = JSON

La oss se utdataene for denne kommandoen:

Vi ser to samlinger her som finnes i vår Solr -installasjon.

Få objekt etter ID

La oss nå se hvordan vi kan få data fra SOLR -samling med en bestemt ID. Her er REST API -kommandoen:

Få objekt etter ID

Curl http: // localhost: 8983/solr/linux_hint_collection/get?id = iduye

Dette er hva vi kommer tilbake med denne kommandoen:

Få alle data

I vår siste REST API spurte vi data ved hjelp av en spesifikk ID. Denne gangen vil vi få alle data til stede i Solr -samlingen vår.

Få objekt etter ID

Curl http: // localhost: 8983/solr/linux_hint_collection/Select?q =*:*

Dette er hva vi kommer tilbake med denne kommandoen:

Legg merke til at vi har brukt '*:*' i spørringsparameter. Dette spesifiserer at Solr skal returnere alle data som er til stede i samlingen. Selv om vi har spesifisert at alle data skal returneres, forstår Solr at samlingen kan ha stor mengde data i den og slik, Det vil bare returnere de første 10 dokumentene.

Slette alle data

Til nå brukte alle API -er vi prøvde et JSON -format. Denne gangen vil vi prøve XML -spørringsformat. Å bruke XML-format er ekstremt likt JSON da XML også er selvbeskrivende.

La oss prøve en kommando for å slette alle data vi har i samlingen vår.

Slette alle data

Curl "http: // localhost: 8983/solr/linux_hint_collection/oppdatering?Commit = True "-H" Content-Type: Text/XML "--data-Binary"*:*"

Dette er hva vi kommer tilbake med denne kommandoen:

Slett alle data ved hjelp av XML -spørring

Hvis vi igjen prøver å få alle data, vil vi se at ingen data er tilgjengelige nå:

Få alle data

Total objektantall

La oss se en kommando som vi kan finne antallet objekter som er til stede i en indeks for en endelig Curl -kommando. Her er kommandoen for det samme:

Total objektantall

Curl http: // localhost: 8983/solr/linux_hint_collection/spørring?Debug = Query & Q =*:*

Dette er hva vi kommer tilbake med denne kommandoen:

Teller antall objekter

Konklusjon

I denne leksjonen så vi på hvordan vi kan bruke Apache Solr og Pass -spørsmål ved hjelp av Curl i både JSON og XML -format. Vi så også at Solr Admin -panelet er nyttig på samme måte som alle krøllekommandoer vi studerte.