Denne vejledning fører dig gennem ind og ud af Elasticsearch-indeksskabeloner, der giver dig mulighed for at definere skabeloner eller tegninger til almindelige indekser. For eksempel, hvis du konstant logger data fra eksterne kilder, kan du definere en plan for alle loggeindekser.
BEMÆRK: Før vi begynder, er det godt at bemærke, at vejledningen fokuserer på den nyeste version af Elasticsearch-7.8 på tidspunktet for skrivning - og det kan variere fra andre versioner. Vi antager også, at du har Elasticsearch kørende på et system et eller andet sted.
Lad os komme i gang med at arbejde med Elasticsearch-indeksskabeloner.
Hvad er en indeksskabelon til elastisk søgning?
En Elasticsearch-indeksskabelon er en metode, der bruges til at instruere Elasticsearch til at konfigurere indeks ved oprettelse. For eksempel konfigurerer en indeksskabelon, der bruges i en datastrøm, streamens backingindeks ved oprettelse. En indeksskabelon oprettes manuelt inden oprettelse af indeks. Når du opretter et indeks, anvender skabelonen konfigurationsindstillingerne for indekset.
Den seneste version af Elasticsearch har to typer brugbare skabeloner. Den ene er den indeksskabelon, og den anden er komponentskabeloner. Som vi allerede har oprettet, hjælper indeksskabeloner med at oprette Elasticsearch-indekser.
Komponentskabeloner er moduler eller blokke, der kan genbruges, der bruges til at konfigurere indstillinger, kortlægning og aliaser. Komponentskabeloner anvendes ikke direkte på de oprettede indekser, men kan hjælpe med at oprette indeksskabeloner.
Nogle standardindeksskabeloner, der bruges af Elasticsearch, inkluderer: metrics - * - *, logs - * - * .
Sådan oprettes en indeksskabelon
For at oprette nye indeksskabeloner eller opdatere eksisterende bruger vi PUT-skabelon-API'en. Ved hjælp af _index_template-slutpunktet kan vi sende en HTTP-anmodning om at tilføje en skabelon.
Den generelle syntaks til oprettelse af en skabelon er:
PUT _index_template / template_nameDet er godt at bemærke, at skabelonnavnet er en påkrævet parameter. Overvej nedenstående anmodning, der opretter en indeksskabelon som template_1
PUT _index_template / template_1/ * Definer indeks mønster * /
"index_patterns": ["te *"],
"prioritet": 1,
/ * Definer indstillinger for indekserne * /
"skabelon":
"indstillinger":
"number_of_shards": 2
For cURL-brugere er kommandoen:
krølle -XPUT "http: // localhost: 9200 / _index_template / template_1" -H 'Content-Type: application / json' -d '/ * Definer indeksmønsteret * / "index_patterns": ["te *"], "prioritet": 1, / * Definer indstillinger for indekserne * / "skabelon": "indstillinger": "number_of_shards": 2 'Elasticsearch bruger et wildcard-mønster til at matche indeksnavne, hvor skabelonerne anvendes. Ændring eller opdatering af en indeksskabelon påvirker ikke kun oprettede indekser kun dem, der oprettes efter brug af denne skabelon.
Ovenfra kan du kommentere dine skabeloner ved hjælp af C-Language-kommenteringsmetoden. Du kan tilføje så mange kommentarer som du vil, hvor som helst i kroppen undtagen de krøllede seler åbning.
I brødteksten til en indeksskabelon kan du inkludere forskellige definitioner såsom:
- Skabelon: Skabelonegenskaben (objekt) definerer, hvilken skabelon der skal anvendes; det kan omfatte aliasser, tilknytninger og indstillinger - dette er en valgfri parameter.
- Sammensat af: Denne egenskab definerer en liste med navne til komponentskabeloner. Når de er defineret, bliver komponentskabeloner sammensat i deres specifikationsrækkefølge. Det betyder, at den sidst definerede komponentskabelon har højeste prioritet.
- Prioritet: Prioritetsegenskaben definerer indeksskabelonens forrang, når du opretter et indeks. Hvis nogen forrang har den højeste værdi, får den højere forrang sammenlignet med lavere værdier. Prioritetsværdien er ikke påkrævet og er af typen heltal. 0 er standardværdien for ikke-specificerede skabeloner.
- Version: Versionsparameteren specificerer indeksskabelonversionen, som hjælper med at administrere skabelonerne.
Der er andre egenskaber, du kan medtage i indeksskabelonens brødtekst. Overvej dokumentationen for at lære mere.
https: // www.elastisk.co / guide / da / elasticsearch / reference / 7.10 / indeksskabeloner.html
Nedenfor er et eksempel på en anmodning om at oprette en ny skabelon med version 1.0
PUT / _index_template / template_2"index_patterns": ["remp *", "re *"],
"prioritet": 1,
"skabelon":
"indstillinger":
"number_of_shards": 2,
"number_of_replicas": 0
,
"version": 1.0
Du kan ikke have mere end en indeksskabelon med et matchende mønster og samme prioritet. Sørg derfor for at tildele forskellige prioriteter til at matche mønsterskabeloner.
Sådan får du indeksskabelon
For at få vist oplysninger om en indeksskabelon skal du sende en GET-anmodning til _index_template API. Brug f.eks. Anmodningen for at se oplysninger om template_2:
FÅ _index_template / template_2CURL-kommandoen er:
krølle -XGET "http: // localhost: 9200 / _index_template / template_2"Denne kommando skal vise oplysninger om template_2
"index_templates": [
"navn": "skabelon_2",
"index_template":
"index_mønstre": [
"remp *",
"re *"
],
"skabelon":
"indstillinger":
"indeks":
"number_of_shards": "2",
"number_of_replicas": "0"
,
"sammensat af" : [ ],
"prioritet": 1,
"version": 1
]
Du kan også bruge jokertegn til at få matchende skabeloner. Overvej f.eks. Nedenstående anmodning om at se alle skabeloner i Elasticsearch.
FÅ _index_template / *CURL-kommandoen er.
krølle -XGET http: // localhost: 9200 / _index_template / *Denne kommando skal give dig information om alle skabeloner i Elasticsearch
"index_templates": [
"name": "ilm-history",
"index_template":
"index_mønstre": [
"ilm-history-3 *"
],
"skabelon":
"indstillinger":
"indeks":
"format": "1",
"livscyklus" :
"name": "ilm-history-ilm-policy",
"rollover_alias": "ilm-history-3"
,
"skjult": "sandt",
"number_of_shards": "1",
"auto_expand_replicas": "0-1",
"number_of_replicas": "0"
,
"kortlægninger":
"dynamisk": falsk,
"ejendomme" :
"index_age":
"type": "lang"
,
"@tidsstempel" :
"format": "epoch_millis",
"type": "dato"
,
"error_details":
"type": "tekst"
,
"succes":
"type": "boolsk"
,
"indeks":
"type": "nøgleord"
,
"stat" :
"dynamisk": sandt,
"type": "objekt",
--------------------------OUTPUT TRUNCATED-----------------------------------
Sådan slettes skabeloner
Sletning af en skabelon er lige så enkel som GET-skabelonen, men ved hjælp af DELETE-anmodning som:
SLET _index_template / template_2Du kan bruge kommandoen cURL:
krølle -XDELETE "http: // localhost: 9200 / _index_template / template_2"Denne kommando sletter automatisk den angivne skabelon.
Konklusion
Denne vejledning dækkede, hvad Elasticsearch-indeksskabeloner er, hvordan de fungerer, og hvordan man opretter, får vist og sletter indeksskabeloner. Disse grundlæggende oplysninger skal hjælpe dig i gang med at bruge Elasticsearch-indeksskabeloner.