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_indexFor 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:
- 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. eller ..
- Indeksnavn kan ikke inneholde spesialtegn som: , /, *,?,,, |, `` (Mellomromstegn), ,, #
- 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
- 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_bodyFor cURL,
curl -XGET http: // localhost: 9200/single_index_with_bodyDenne 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.