I denne raske opplæringen vil vi se på Elasticsearch, spesifikt hvordan du lager indekser i Elasticsearch-motoren. Selv om du ikke trenger omfattende kunnskap om ELK stack for å følge denne opplæringen, kan det være fordelaktig å ha en grunnleggende forståelse av følgende emner:
- Bruke terminalen, spesifikt, cURL
- Grunnleggende kunnskap om APIer og JSON
- Gjør HTTP-forespørsel
MERK: Denne opplæringen forutsetter også at du har installert og kjører Elasticsearch på systemet ditt.
Hva er elastiske søkindekser?
Uten å forenkle eller overkomplisere ting er en Elasticsearch-indeks en samling relaterte JSON-dokumenter.
Som nevnt i et forrige innlegg, er Elasticsearch-indekser JSON-objekter, betraktet som baseenheten for lagring i Elasticsearch. Disse relaterte JSON-dokumentene er lagret i en enkelt enhet som utgjør en indeks. Tenk på Elasticsearch-dokumenter som tabeller i en relasjonsdatabase.
La oss relatere en Elasticsearch-indeks som en database i SQL-verdenen.
- MySQL => Databaser => Tabeller => Kolonner / rader
- Elasticsearch => Indices => Typer => JSON-dokumenter med egenskaper
Hvordan lage en Elasticsearch-indeks
Elasticsearch bruker et kraftig og intuitivt REST API for å eksponere sine tjenester. Denne funksjonaliteten lar deg bruke HTTP-forespørsler til å utføre operasjoner på Elasticsearch-klyngen. Derfor vil vi bruke create index API for å opprette en ny indeks.
For denne guiden vil vi bruke cURL til å sende forespørslene og bevare integritet og brukervennlighet for alle brukere. Imidlertid, hvis du støter på feil med cURL, bør du vurdere å bruke Kibana Console.
Syntaksen for å lage en ny indeks i Elasticsearch-klyngen er:
SETTE /For å lage en indeks er alt du trenger å gjøre å sende indeksnavnet uten andre parametere, som oppretter en indeks ved hjelp av standardinnstillinger.
Du kan også spesifisere forskjellige funksjoner i indeksen, for eksempel i indeksen:
- Innstillingene for indeksen
- Indeksaliaser
- Kartlegginger for indeksfelt
Indeksnavnet er en nødvendig parameter; Ellers får du en feil for URIL (/)
curl -X PUT “localhost: 9200”"error": "Feil HTTP-metode for uri [/] og metode [PUT], tillatt: [DELETE, HEAD, GET]", "status": 405
For å opprette en ny indeks med navnet single_index, sender vi forespørselen:
PUT / single_indexFor cURL, bruk kommandoen:
curl -X PUT "localhost: 9200 / single_index?ganske"Denne kommandoen skal resultere i HTTP-status 200 OK og en melding med bekreftet: sann som:
“Erkjent”: sant,
"shards_acknowledged": sant,
"index": "single_index"
Forespørselen ovenfor oppretter en indeks single_index med standardinnstillinger ettersom vi ikke spesifiserte noen konfigurasjoner.
Regler for indeksnavn
Når du oppretter navn for Elasticsearch-indekser, må du følge følgende navnestandarder:
- Indeksnavnet må bare være med små bokstaver.
- Indeksnavnene kan ikke starte med en bindestrek (-), en understreking (_) eller et tilleggstegn (+)
- Navnene kan ikke være det . eller…
- Indeksnavn kan ikke inneholde spesialtegn som: \, /, *, ?, “, <, >, |, "(mellomromstegn), ,, #
- Lengden på indeksnavn må være mindre enn 255 byte. Multi-byte-tegn teller i den totale lengden på indeksnavnet. For eksempel, hvis et enkelt tegn er 8 byte langt, er den totale gjenværende lengden på navnet 255 - 8
- I den siste versjonen av Elasticsearch, navn som starter med en . er reservert for skjulte indekser og interne indekser som brukes av Elasticsearch-plugins.
Hvordan lage et indeksorgan
Når du bruker PUT-forespørselen til å lage en indeks, kan du sende forskjellige argumenter som definerer innstillingene for indeksen du vil ha opprettet. Verdier du kan spesifisere i kroppen inkluderer:
- Aliaser: Spesifiserer aliasnavn for indeksen du vil ha opprettet; denne parameteren er valgfri.
- Innstillinger: Dette definerer konfigurasjonsalternativene for indeksen du vil ha opprettet. Hvis du ikke spesifiserer noen parametere, blir indeksen opprettet ved hjelp av standardkonfigurasjoner.
- Kartlegginger: Dette definerer kartleggingen for felt i indeksen. Spesifikasjonene du kan inkludere i kartlegginger inkluderer:
- Feltnavnet
- Datatypen
- Kartleggingsparameteren
For et eksempel på å lage en indeks med kroppskonfigurasjoner, kan du vurdere forespørselen nedenfor:
PUT / single_index_with_body"innstillinger":
"number_of_shards": 2,
"number_of_replicas": 2
,
“Mappings”:
"eiendommer":
"field1": "type": "object"
For en tilsvarende CURL-forespørsel:
krølle -XPUT "http: // localhost: 9200 / single_index_with_body" -H 'Content-Type: application / json' -d '"settings": "number_of_shards": 2, "number_of_replicas": 2, "mappings" : "egenskaper": "field1": "type": "objekt" 'Ovennevnte forespørsel oppretter en ny indeks med navnet single_index_with_body med 2 antall skjær og 2 kopier. Det oppretter også en kartlegging med et felt med navnefelt1 og skriver som et JSON-objekt.
Når du har sendt forespørselen, får du svar med forespørselens status som:
“Erkjent”: sant,
"shards_acknowledged": sant,
"index": "single_index_with_body"
"Godkjent" viser om indeksen ble opprettet i klyngen, mens "shards_acknowledged" viser om det nødvendige antall skjærkopier ble startet for hver skjær i den angitte indeksen før timeout.
Hvordan vise Elasticsearch Index
For å se informasjonen om indeksen du opprettet, bruk en lignende forespørsel som om å lage en indeks, men bruk HTTP-metoden i stedet for PUT som:
GET / single_index_with_bodyFor CURL,
krøll -XGET “http: // localhost: 9200 / single_index_with_body”Denne kommandoen vil gi deg detaljert informasjon om den forespurte indeksen som:
"single_index_with_body":
"aliaser": ,
"mappings":
"eiendommer" :
"felt1":
"type": "objekt"
,
"innstillinger":
"indeks":
"ruting":
"tildeling" :
"inkluderer":
"_tier_preference": "data_innhold"
,
"number_of_shards": "2",
"provided_name": "single_index_with_body",
"creation_date": "1611045687208",
"number_of_replicas": "2",
"uuid": "3TRkO7xmQcSUOOGtb6pXVA",
"versjon":
"opprettet": "7100299"
Konklusjon
Denne guiden diskuterte hvordan du kan jobbe med Elasticsearch for å lage indeks API for å lage nye indekser. Vi diskuterte også hvordan du lager passende navn for indeksene og konfigurasjonsinnstillingene.
Ved å bruke denne guiden kan du nå opprette og vise indekser ved hjelp av Elasticsearch API.