Hvordan lage Elasticsearch -indekser

How Create Elasticsearch Indices



Elasticsearch er en del av den populære ELK -stakken som brukes til logganalyse og søk. Applikasjoner og systemer logger stadig data som kan være svært nyttige for feilsøking og sporing av problemer. Ved å bruke ELK -stakken har du de beste verktøyene for å utføre disse oppgavene raskt og enkelt.

I denne korte opplæringen vil vi se på Elasticsearch, spesielt hvordan du oppretter indekser i Elasticsearch -motoren. Selv om du ikke trenger noen omfattende kunnskap om ELK -stabel for å følge denne opplæringen, kan det være fordelaktig å ha en grunnleggende forståelse av følgende emner:







  • Spesielt å bruke terminalen, cURL
  • Grunnleggende kunnskap om APIer og JSON
  • Forespørsel om HTTP

MERK: Denne opplæringen forutsetter også at du har Elasticsearch installert og kjører på systemet ditt.



Hva er Elasticsearch -indekser?

Uten å forenkle eller overkomplisere ting, er en Elasticsearch -indeks en samling av relaterte JSON -dokumenter.



Som nevnt i et tidligere 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 => Types => JSON -dokumenter med egenskaper

Hvordan lage en Elasticsearch Index

Elasticsearch bruker et kraftig og intuitivt REST API for å avsløre sine tjenester. Denne funksjonaliteten lar deg bruke HTTP -forespørsler til å utføre operasjoner i Elasticsearch -klyngen. Derfor bruker vi opprettingsindeks -API for å lage en ny indeks.



For denne guiden vil vi bruke cURL til å sende forespørslene og bevare integritet og brukervennlighet for alle brukere. Men 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 det bare å sende indeksnavnet uten andre parametere, noe som skaper en indeks ved bruk av standardinnstillinger.

Du kan også angi forskjellige funksjoner i indeksen, for eksempel i indeksteksten:

  • Innstillingene for indeksen
  • Indeksaliaser
  • Tilordninger for indeksfelt

Indeksnavnet er en nødvendig parameter; ellers får du en feil for URIL (/)

curl -X PUT lokal vert: 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_index

For cURL, bruk kommandoen:

curl -X PUT 'localhost: 9200/single_index? pretty'

Denne kommandoen skal resultere i HTTP -status 200 OK og en melding med kvittert: true som:

{
erkjente: sant,
'shards_acknowledged': sant,
'index': 'single_index'
}

Forespørselen ovenfor oppretter en indeks single_index med standardinnstillinger ettersom vi ikke spesifiserte noen konfigurasjoner.

Indeksnavnregler

Når du oppretter navn for Elasticsearch -indekser, må du følge følgende navnestandarder:

  1. Indeksnavnet må bare være med små bokstaver.
  2. Indeksnavnene kan ikke starte med en bindestrek (-), en understreking (_) eller et tilleggstegn (+)
  3. Navnene kan ikke være. eller ..
  4. Indeksnavn kan ikke inneholde spesialtegn som: , /, *,?,,, |, `` (Mellomromstegn), ,, #
  5. Lengden på indeksnavn må være mindre enn 255 byte. Multi-byte tegn vil telle 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
  6. I den siste versjonen av Elasticsearch, navn som starter med en. er forbeholdt skjulte indekser og interne indekser som brukes av Elasticsearch -plugins.

Hvordan lage en indekstekst

Når du bruker PUT -forespørselen til å opprette en indeks, kan du sende forskjellige argumenter som definerer innstillingene for indeksen du vil ha opprettet. Verdier du kan angi i kroppen inkluderer:

  • Alias: Angir aliasnavn for indeksen du vil ha opprettet; denne parameteren er valgfri.
  • Innstillinger: Dette definerer konfigurasjonsalternativene for indeksen du vil ha opprettet. Hvis du ikke angir noen parametere, blir indeksen opprettet ved hjelp av standardkonfigurasjoner.
  • Kartlegging: Dette definerer kartlegging for felt i indeksen. Spesifikasjonene du kan inkludere i kartleggingene inkluderer:
    • Feltnavnet
    • Datatypen
    • Kartleggingsparameteren

For et eksempel på hvordan du oppretter en indeks med hovedkonfigurasjoner, kan du vurdere forespørselen nedenfor:

PUT /single_index_with_body
{
'innstillinger': {
'number_of_shards': 2,
'number_of_replicas': 2
},
kartlegging: {
'egenskaper': {
'field1': {'type': 'object'}
}
}
}

For en cURL -tilsvarende forespørsel:

curl -XPUT 'http: // localhost: 9200/single_index_with_body' -H 'Content -Type: application/json' -d '{' settings ': {' number_of_shards ': 2,' number_of_replicas ': 2},' mappings ' : {'properties': {'field1': {'type': 'object'}}}} '

Forespørselen ovenfor 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 sender forespørselen, får du et svar med statusen til forespørselen som:

{
erkjente: sant,
'shards_acknowledged': sant,
'index': 'single_index_with_body'
}

Acknowledged viser om indeksen ble opprettet i klyngen, mens shards_acknowledged viser om det nødvendige antallet shard -kopier ble startet for hvert shard i den angitte indeksen før timeout.

Slik ser du Elasticsearch Index

For å se informasjonen om indeksen du opprettet, bruk en lignende forespørsel som for å opprette en indeks, men bruk HTTP -metoden i stedet for PUT som:

GET /single_index_with_body

For cURL,

curl -XGET http: // localhost: 9200/single_index_with_body

Denne kommandoen gir deg detaljert informasjon om den forespurte indeksen som:

{
'single_index_with_body': {
'alias': {},
'mappings': {
'egenskaper' : {
'felt1': {
'type': 'objekt'
}
}
},
'innstillinger': {
'indeks': {
'ruting': {
'tildeling' : {
'inkludere': {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'provided_name': 'single_index_with_body',
'creation_date': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'versjon': {
'created': '7100299'
}
}
}
}
}

Konklusjon

Denne guiden diskuterte hvordan du arbeider med Elasticsearch for å lage indeks -API for å lage nye indekser. Vi diskuterte også hvordan vi lager passende navn for indeksene og konfigurasjonsinnstillingene.

Ved å bruke denne guiden kan du nå opprette og vise indekser ved hjelp av Elasticsearch API.