En idé bak elastisk stakk og elastisksøk

(10. april 2020 )

En kort introduksjon til Elasticsearch og ELK Stack. Hvorfor hva og hvordan.

ELK https : //aasconsultants.files.wordpress.com/2019/03/elk.png

Historie

Elastisk NV er et selskap som ble grunnlagt i 2012 i Amsterdam, Shay Banon var grunnleggeren av Elasticsearch. Hans første iterasjon ble kalt Compass. Den andre var Elasticsearch (med Apache Lucene under panseret). Han åpnet Elasticsearch, opprettet IRC-kanalen #elasticsearch og ventet på at brukerne skulle vises. Responsen var imponerende. Brukerne tok det naturlig og enkelt. Adopsjonen gikk gjennom taket, et samfunn begynte å dannes, og folk la merke til det – nemlig Steven Schuurman, Uri Boness og Simon Willnauer. Sammen grunnla de et søkeselskap.

Hva er Elastic Stack?

Elastic Stack er også kjent som ELK stack. I utgangspunktet inneholder den tre åpne kildeprosjekter.

  1. Elastisk søk ​​ – Søke- og analysemotor .
  2. Logstash – Databehandlingsrørledning.
  3. Kibana – Dashbord for å visualisere data.

Alle disse tre har sin egen betydning, og ved å kamme disse tre Får analyser og analyser av dataene dine.

Hvorfor er det nødvendig?

I henhold til undersøkelsen genererer Facebook 4 Petabytes-data hver dag, dvs. 40 millioner GB . Dataene, nå er det en verden av data. Så vi trenger et system som analyserer dataene våre.

Vent !! Hva betyr det? Analyser.

Det er to ord å forstå.

  1. Analyse – I analysedelen får du resultater fra tidligere data eller eksisterende data du har.
  2. Analytics – Når du vil forutsi brukerbehov, vil du ha grafbasert visualisering for bedre forretningsklarhet og også ønsker å forstå datamønstre.

Så disse to viktigste verktøyene for enhver bedrift. Du kan oppnå disse ved å Data . Og ved hjelp av disse to kan du utvide virksomheten din og fjerne forretningsinnsikt.

Nå er det hvordan? For å analysere disse store dataene på kortere tid er ikke en lett oppgave.

Utfordringer og løsninger.

Hva skjer i veldig store selskaper får du data fra forskjellige steder i forskjellige formater. Det kan være JSON eller XML uansett. Så vi trenger en mekanisme for å få hele data på ett sted og også i ett format. Så for det bruker vi Logstash .

Nå når vi får data, må vi ordne data i en systematisk rekkefølge slik at vi kan evaluere ting veldig enkelt. Vi ønsker også å analysere dataene, i så fall, først, gå gjennom data veldig raskt. For det har vi Elasticsearch. Elasticsearch er utviklet i Java og er utgitt som åpen kildekode under vilkårene i Apache License .

Nå etter å ha fullført dette, trenger vi en visualiseringsplattform der vi kan vise vår dataanalyse. Der Kibana kommer inn i bildet. Slik fungerte hele Elastic stack. For bedre Forretningsinnsikt .

Prosess https://hackernoon.com/hn-images/1*Tvmj3XsqH4hJLvXnfm6sZQ.png

Sette opp Elasticsearch, Logstash og Kibana

La oss først laste ned de tre programvarene med åpen kildekode fra deres respektive lenker [ elasticsearch ], [ logstash ] og [ kibana ]. Pakk ut filene og legg alle tre i prosjektmappen.

La oss komme i gang.

Trinn 1 – Sett opp Kibana og Elasticsearch på det lokale systemet. Vi kjører Kibana med følgende kommando i bin-mappen til Kibana.

bin\kibana

Tilsvarende er Elasticsearch satt opp slik:

bin\elasticsearch

Nå, i de to separate terminalene, kan vi se at begge modulene kjører.For å sjekke at tjenestene kjører åpne localhost: 5621 for Kibana og localhost: 9600 for Elasticsearch.

Her er vi klare med oppsett for elastisk stabel. Gå nå til localhost: 5621 og åpne dev-verktøy her i konsollen. Det er stedet du kan skrive spørsmål om elastikk.

Kibana Console

Som vi skal snakke mer om Elasticsearch denne gangen. Nå får vi se hvordan akkurat Elasticsearch fungerer.

Elastisk søk ​​

Arbeid med elastisk søk ​​

Før noen operasjon, må vi indeksere dataene våre. Når de først er indeksert i Elasticsearch, kan de kjøre komplekse spørsmål mot dataene sine og bruke aggregasjoner for å hente komplekse sammendrag av dataene. Elasticsearch lagrer data som JSON-dokumenter og bruker Datastrucre som kalles en invertert indeks , som er designet for å tillate veldig raske fulltekstsøk . En omvendt indeks viser hvert unike ord som vises i ethvert dokument og identifiserer alle dokumentene hvert ord forekommer i.

For å få en bedre forståelse, vil vi del elastiksøk i flere emner.

  1. Administrere dokumenter
  2. Kartlegginger
  3. Analyse
  4. Søkemetodikk
  5. Aggregering og filtre

Det viktigste ved Elasticsearch er å forstå arkitekturen.

Cluster

I Elasticserach lagrer vi dataene våre i noder, det kan være n antall noder i en maskin. Og hver node er relatert til klyngen. Så Klyngen er et sett med noder .

Dokumenter

Du lagrer dataene dine som dokumenter som er JSON-objekter. Så hvordan disse dataene ble organisert i klyngen? Svaret er indekser .

I verden av relasjonelle databaser, dokumenter kan sammenlignes med en rad i en tabell.

Indeks

Elasticsearch Indices er logiske partisjoner av dokumenter og kan sammenlignes med en database i verden av relasjonsdatabaser.

Typer

Hver indeks har en eller flere kartleggingstyper som brukes til å dele inn dokumenter i en logisk gruppe. Det kan sammenlignes med en tabell i verden med relasjonsdatabaser.

Hvert dokument lagres som en indeks . Indeksen du kan si er samling av dokumenter. Som for eksempel har lignende egenskaper, vil avdelingen ha A-indeks og ansatte har B-indeks, dvs. at de er logisk relatert.

Sharding

  1. Sharding er bare en måte å dele indeksen på. i mindre biter.
  2. Hvert stykke er kjent som en skjær.
  3. Skjæring gjøres på indeksnivå.

Skår er akkurat som en indeks. For skalerbarhet. Med skjæring kan du lagre milliarder av dokumenter i den ene indeksen. Det er også replikaer, men foreløpig er det godt nok for oss å starte og forstå Elasticsearch.

Så la oss gå videre mot bygging og søkemotor.

1. Administrere dokumenter

Før det får du Elasticserach-pakkebehandling.

npm i elasticsearch

Trinn -1- Koble søknaden din til Elasticsearch ved å følge.

Connection

Trinn 2 – Opprett indeks for en f.eks. Vi oppretter en indeks som gov.

Opprett indeks

Trinn 3 – Nå vil vi legge til dokumenter i indeksgov og i indeksgov er det en type som kalles valgkretser .

Du kan relatere ettersom det er en database som heter gov og tabellen er valgkretser.

Legge til dokumenter

2. Kartlegginger

Kartlegging er prosessen med å definere dokument og dets felt. Akkurat som å definere tabellskjema i RDBMS.

Trinn-4 – Nå skal vi definere kartlegginger for å indeksere valgkretser.

Kartlegginger

3. Analyse

Tekstanalyse er prosessen med å konvertere ustrukturert tekst , som brødteksten til en e-post eller en produktbeskrivelse, i et strukturert format som er optimalisert for søk.

Elasticsearch utfører tekstanalyse når du indekserer eller søker i

text felt . Det har vi definert i kartlegginger. Dette er nøkkelfaktoren for søkemotoren.

Som standard bruker Elasticsearch

standard analysator for all tekstanalyse. standard analysatoren gir deg ut av boksen støtte for de fleste naturlige språk og brukstilfeller . Hvis du velger å bruke standard analysatoren som den er, er det ikke behov for ytterligere konfigurasjon. Du kan også lage din egen tilpassede analysator.

4. Søkemetodikk

Det er forskjellige typer spørsmål du kan søke på Elasticsearch. Ved det vil du få resultater tilsvarende. Her vil jeg gi et grunnleggende eksempel på et spørsmål.

Den mest enkle spørringen, som samsvarer med alle dokumenter.

Søkeforespørsel

Forespørsler

Sammensatte spørsmål innpakker andre sammensatte eller bladspørsmål, enten for å kombinere resultatene og resultatene, for å endre atferd, eller for å bytte fra spørring til filterkontekst.

Standard spørring for å kombinere flere blad- eller sammensatte spørringssetninger, som must, should, must\_not, eller filter klausuler. must og should ledd har sine poeng kombinert.

Fullteksten spørringer gjør at du kan søke i analyserte tekstfelt , for eksempel brødteksten til en e-post. Spørringsstrengen behandles med den samme analysatoren som ble brukt på feltet under indeksering. Det vil analysere innspillene dine. Hvis gitte input ikke er nøyaktige, men likevel, får du et resultat.

Å utføre full SQL-stil-sammenkoblinger i et distribuert system som Elasticsearch er uoverkommelig dyrt. I stedet tilbyr Elasticsearch to former for sammenføyning som er designet for å skalere horisontalt.

1.

nested forespørsel

2.

has\_child og

has\_parent spørsmål

Denne gruppen inneholder spørsmål som ikke passer inn i de andre gruppene. Det er funnet at dokumenter som er like i naturen, festede spørsmål også det er mange flere takk sjekk ut dokumentasjonen .

Du kan bruke søk på termenivå for å finne dokumenter basert på presisjon verdier i strukturerte data. Eksempler på strukturerte data inkluderer datoperioder, IP-adresser, priser eller produkt-IDer.

I motsetning til spørsmål i fulltekst, gjør spørsmål på terminnivå ikke analysere søkeord. I stedet samsvarer søkeord på termenivå med de eksakte vilkårene som er lagret i et felt. Den vil finne nøyaktig samsvar med inndata der det som i fulltekst første blir analysert, og søk så det er stor forskjell mellom term-nivå og fulltekst-spørring.

5. Aggregering og filtre

I en filterkontekst svarer en spørringsklausul på spørsmålet “ samsvarer dette dokumentet med denne spørringsklausulen? Svaret er et enkelt ja eller nei – ingen poeng blir beregnet. Filterkontekst brukes mest for å filtrere strukturerte data, f.eks.

  • Får dette timestamp faller innenfor området 2015 til 2016?
  • Er status feltet satt til "published"?

Ofte brukte filtre blir hurtigbufret av Elasticsearch for å øke ytelsen.

Filterkontekst er i kraft når en spørringsklausul sendes til en filter -parameter, for eksempel filter eller must\_not -parametrene i

bool spørring, filter parameteren i

constant\_score spørringen, eller

filter aggregering .

Med aggregering er mer som i RDBMS, finner du Gj.snitt, sum og mye datainnsikt ved bruk av komplekse spørsmål.

Sammendrag

  1. Hva Elastic Stack er.
  2. Hvordan ELK fungerer.
  3. Hva er elasticsearch og hvordan det fungerer.
  4. Noen grunnleggende spørsmål om det.

What Next !!

Da det er et enormt emne å dekke. men jeg har prøvd å gi en kort introduksjon om ELK og Elasticsearch. Deretter vil vi bygge vår egen søkemotor som Application ved hjelp av Elasticsearch der jeg også vil dekke en kodende del. Hvordan opprettholde filstrukturen og andre ting.

Konklusjon

Elastic Stack er en veldig viktig teknologi å lære. Du vil bruke dette i alle prosjektene dine, og ELK Stack brukes oftest som et logg-analyseverktøy . Dens popularitet ligger i det faktum at det gir en pålitelig og relativt skalerbar måte å samle data fra flere kilder. Det er fortsatt mange ting igjen, men etter dette kan du starte med Elasticsearch. Jeg anbefaler deg å gå gjennom dokumentasjonen . Hvis du har spørsmål eller finner noe galt med innholdet, kan du legge igjen en kommentar.

Takk 🙂