Sådan oprettes Elasticsearch -indekser

How Create Elasticsearch Indices



Elasticsearch er en del af den populære ELK -stak, der bruges til loganalyse og søgning. Applikationer og systemer logger konstant data, der kan være meget nyttige til fejlfinding og sporing af problemer. Ved hjælp af ELK -stakken har du de bedste værktøjer til at udføre disse opgaver hurtigt og meget let.

I denne hurtige vejledning ser vi på Elasticsearch, specifikt hvordan du opretter indekser i Elasticsearch -motoren. Selvom du ikke har brug for nogen omfattende viden om ELK -stak for at følge denne vejledning, kan det være en fordel at have en grundlæggende forståelse af følgende emner:







  • Specielt brug af terminalen, cURL
  • Grundlæggende viden om API'er og JSON
  • Indsendelse af HTTP -anmodning

BEMÆRK: Denne vejledning forudsætter også, at du har Elasticsearch installeret og kører på dit system.



Hvad er Elasticsearch -indekser?

Uden at forenkle eller overkomplicere ting, er et Elasticsearch -indeks en samling af relaterede JSON -dokumenter.



Som nævnt i et tidligere indlæg er Elasticsearch -indekser JSON -objekter - betragtes som baseenheden for lagring i Elasticsearch. Disse relaterede JSON -dokumenter gemmes i en enkelt enhed, der udgør et indeks. Tænk på Elasticsearch -dokumenter som tabeller i en relationsdatabase.





Lad os relatere et Elasticsearch -indeks som en database i SQL -verdenen.

  • MySQL => Databaser => Tabeller => Kolonner/rækker
  • Elasticsearch => Indeks => Typer => JSON -dokumenter med egenskaber

Sådan opretter du et Elasticsearch Index

Elasticsearch bruger en kraftfuld og intuitiv REST API til at afsløre sine tjenester. Denne funktionalitet giver dig mulighed for at bruge HTTP -anmodninger til at udføre operationer på Elasticsearch -klyngen. Derfor vil vi bruge oprette indeks -API til at oprette et nyt indeks.



I denne vejledning vil vi bruge cURL til at sende anmodninger og bevare integritet og brugervenlighed for alle brugere. Men hvis du støder på fejl med cURL, kan du overveje at bruge Kibana Console.

Syntaksen til oprettelse af et nyt indeks i Elasticsearch -klyngen er:

PUT /

For at oprette et indeks er alt du skal gøre at videregive indeksnavnet uden andre parametre, hvilket skaber et indeks ved hjælp af standardindstillinger.

Du kan også angive forskellige funktioner i indekset, f.eks. I indeksteksten:

  • Indstillingerne for indekset
  • Indeksaliaser
  • Tilknytninger til indeksfelter

Indeksnavnet er en påkrævet parameter; ellers får du en fejl for URIL (/)

curl -X PUT lokal vært: 9200
{'error': 'Forkert HTTP -metode til uri [/] og metode [PUT], tilladt: [DELETE, HEAD, GET]', 'status': 405}

For at oprette et nyt indeks med navnet single_index sender vi anmodningen:

PUT /single_index

For cURL skal du bruge kommandoen:

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

Denne kommando skal resultere i HTTP -status 200 OK og en meddelelse med kvitteret: sand som:

{
anerkendt: sandt,
'shards_acknowledged': sandt,
'index': 'single_index'
}

Anmodningen ovenfor opretter et index single_index med standardindstillinger, da vi ikke angav nogen konfigurationer.

Regler for navngivning af indeks

Når du opretter navne til Elasticsearch -indekser, skal du overholde følgende navngivningsstandarder:

  1. Indeksnavnet må kun være med små bogstaver.
  2. Indeksnavnene kan ikke starte med en bindestreg (-), en understregning (_) eller et tilføjelsestegn (+)
  3. Navnene kan ikke være. eller ..
  4. Indeksnavne må ikke indeholde specialtegn som: , /, *,?,,, |, `` (Mellemrumstegn), ,, #
  5. Længden af ​​indeksnavne skal være mindre end 255 bytes. Multi-byte tegn tæller med i indeksnavnets samlede længde. For eksempel, hvis et enkelt tegn er 8 bytes langt, er den samlede resterende længde af navnet 255 - 8
  6. I den seneste version af Elasticsearch, navne, der starter med et. er forbeholdt skjulte indekser og interne indekser, der bruges af Elasticsearch -plugins.

Sådan opretter du en indekstekst

Når du bruger PUT -anmodningen til at oprette et indeks, kan du videregive forskellige argumenter, der definerer indstillingerne for det indeks, du vil have oprettet. Værdier, du kan angive i brødteksten, omfatter:

  • Alias: Angiver aliasnavne for det indeks, du vil have oprettet; denne parameter er valgfri.
  • Indstillinger: Dette definerer konfigurationsmulighederne for det indeks, du vil have oprettet. Hvis du ikke angiver nogen parametre, oprettes indekset ved hjælp af standardkonfigurationer.
  • Kortlægninger: Dette definerer kortlægningen for felter i indekset. De specifikationer, du kan inkludere i kortlægninger, omfatter:
    • Feltets navn
    • Datatypen
    • Kortlægningsparameteren

For et eksempel på at oprette et indeks med brødtekstkonfigurationer, overvej anmodningen herunder:

PUT /single_index_with_body
{
'indstillinger': {
'number_of_shards': 2,
'number_of_replicas': 2
},
kortlægninger: {
'ejendomme': {
'field1': {'type': 'objekt'}
}
}
}

For en cURL -tilsvarende anmodning:

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'}}}} '

Ovenstående anmodning opretter et nyt indeks med navnet single_index_with_body med 2 antal skår og 2 kopier. Det opretter også en kortlægning med et felt med navnefelt1 og skriver som et JSON -objekt.

Når du har sendt anmodningen, får du et svar med anmodningens status som:

{
anerkendt: sandt,
'shards_acknowledged': sandt,
'index': 'single_index_with_body'
}

Godkendt viser, om indekset blev oprettet i klyngen, mens shards_acknowledged viser, om det krævede antal shard -kopier blev startet for hvert shard i det angivne indeks før timeout.

Sådan ses Elasticsearch Index

Hvis du vil se oplysningerne om det indeks, du har oprettet, skal du bruge en lignende anmodning til at oprette et indeks, men bruge HTTP -metoden i stedet for PUT som:

GET /single_index_with_body

For cURL,

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

Denne kommando giver dig detaljerede oplysninger om det ønskede indeks som:

{
'single_index_with_body': {
'aliasser': {},
'kortlægninger': {
'ejendomme' : {
'felt1': {
'type': 'objekt'
}
}
},
'indstillinger': {
'indeks': {
'routing': {
'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',
'version': {
'created': '7100299'
}
}
}
}
}

Konklusion

Denne vejledning diskuterede, hvordan man arbejder med Elasticsearch til at oprette indeks -API for at oprette nye indeks. Vi diskuterede også, hvordan man opretter passende navne til indekser og konfigurationsindstillinger.

Ved at bruge denne vejledning kan du nu oprette og se indekser ved hjælp af Elasticsearch API.