Den här självstudien går igenom ins och outs av Elasticsearch-indexmallar som låter dig definiera mallar eller ritningar för vanliga index. Om du till exempel ständigt loggar data från externa källor kan du definiera en ritning för alla loggningsindex.
NOTERA: Innan vi börjar är det bra att notera att handledningen fokuserar på den senaste versionen av Elasticsearch-7.8 när detta skrivs - och det kan variera från andra versioner. Vi antar också att du har Elasticsearch på ett system någonstans.
Låt oss börja arbeta med Elasticsearch-indexmallar.
Vad är en Elasticsearch-mall?
En Elasticsearch-indexmall är en metod som används för att instruera Elasticsearch att konfigurera index efter skapandet. Till exempel konfigurerar en indexmall som används i en dataström strömens stödindex vid skapandet. En indexmall skapas manuellt innan index skapas. När du skapar ett index tillämpar mallen konfigurationsinställningarna för indexet.
Den senaste versionen av Elasticsearch har två typer av användbara mallar. En är indexmall, och den andra är komponentmallar. Som vi redan har etablerat hjälper indexmallar till att skapa Elasticsearch-index.
Komponentmallar är återanvändbara moduler eller block som används för att konfigurera inställningar, mappning och alias. Komponentmallar appliceras inte direkt på de skapade indexen men kan hjälpa till att skapa indexmallar.
Vissa standardindexmallar som används av Elasticsearch inkluderar: mätvärden - * - *, loggar - * - * .
Hur man skapar en indexmall
För att skapa nya indexmallar eller uppdatera befintliga använder vi PUT mall API. Med hjälp av slutpunkten _index_template kan vi skicka en HTTP-begäran för att lägga till en mall.
Den allmänna syntaxen för att skapa en mall är:
PUT _index_template / template_nameDet är bra att notera att mallnamnet är en nödvändig parameter. Tänk på begäran nedan som skapar en indexmall som mall_1
PUT _index_template / template_1/ * Definiera indexmönster * /
"index_patterns": ["te *"],
"prioritet": 1,
/ * Definiera inställningar för indexen * /
"mall":
"inställningar" :
"number_of_shards": 2
För cURL-användare är kommandot:
curl -XPUT "http: // localhost: 9200 / _index_template / template_1" -H 'Content-Type: application / json' -d '/ * Definiera indexmönster * / "index_patterns": ["te *"], "prioritet": 1, / * Definiera inställningar för indexen * / "mall": "inställningar": "number_of_shards": 2 'Elasticsearch använder ett jokerteckenmönster för att matcha indexnamn där mallarna används. Att ändra eller uppdatera en indexmall påverkar inte redan skapade index endast de som kommer att skapas efter att ha använt den mallen.
Ovanifrån kan du kommentera dina mallar med C-Language-kommenteringsmetoden. Du kan lägga till så många kommentarer du vill, var som helst i kroppen utom de lockiga hängslenens öppning.
I kroppen av en indexmall kan du inkludera olika definitioner som:
- Mall: Mallegenskapen (objekt) definierar vilken mall som ska tillämpas; det kan inkludera alias, mappningar och inställningar - detta är en valfri parameter.
- Sammansatt av: Den här egenskapen definierar en lista med namn för komponentmallar. När de väl är definierade blir komponentmallarna sammansatta i specifikationsordningen. Det betyder att den senast definierade komponentmallen har högsta prioritet.
- Prioritet: Prioritetsegenskapen definierar indexmallens företräde när du skapar ett index. Om någon prioritet har det högsta värdet får den högre prioritet jämfört med lägre värden. Prioritetsvärdet krävs inte och är av typen heltal. 0 är standardvärdet för ospecificerade mallar.
- Version: Versionsparametern anger indexmallversionen, som hjälper till att hantera mallarna.
Det finns andra egenskaper som du kan inkludera i indexmallen. Tänk på dokumentationen för att lära dig mer.
https: // www.elastisk.co / guide / sv / elasticsearch / reference / 7.10 / indexmallar.html
Nedan följer en exempelförfrågan om att skapa en ny mall med version 1.0
PUT / _index_template / template_2"index_patterns": ["remp *", "re *"],
"prioritet": 1,
"mall":
"inställningar" :
"number_of_shards": 2,
"number_of_replicas": 0
,
"version": 1.0
Du kan inte ha mer än en indexmall med ett matchande mönster och samma prioritet. Se därför till att tilldela olika prioriteringar för att matcha mönstermallar.
Hur får man indexmall
För att visa information om en indexmall, skicka en GET-begäran till API_index_template. Om du till exempel vill se information om mall_2 använder du begäran:
GET _index_template / template_2Kommandot cURL är:
curl -XGET "http: // localhost: 9200 / _index_template / template_2"Detta kommando ska visa information om mall_2
"index_templates": [
"namn": "mall_2",
"index_template":
"index_mönster": [
"remp *",
"re*"
],
"mall" :
"inställningar" :
"index":
"number_of_shards": "2",
"number_of_replicas": "0"
,
"sammansatt av" : [ ],
"prioritet": 1,
"version": 1
]
Du kan också använda jokertecken för att få matchande mallar. Tänk till exempel på begäran nedan för att visa alla mallar i Elasticsearch.
GET _index_template / *Kommandot cURL är.
curl -XGET http: // localhost: 9200 / _index_template / *Detta kommando ska ge dig information om alla mallar i Elasticsearch
"index_templates": [
"name": "ilm-history",
"index_template":
"index_mönster": [
"ilm-history-3 *"
],
"mall" :
"inställningar" :
"index":
"format": "1",
"livscykel" :
"name": "ilm-history-ilm-policy",
"rollover_alias": "ilm-history-3"
,
"dold": "sant",
"number_of_shards": "1",
"auto_expand_replicas": "0-1",
"number_of_replicas": "0"
,
"mappningar":
"dynamisk": falsk,
"egenskaper" :
"index_age":
"typ": "lång"
,
"@tidsstämpel" :
"format": "epoch_millis",
"type": "date"
,
"detaljer om felet" :
"typ": "text"
,
"Framgång":
"type": "boolean"
,
"index":
"type": "sökord"
,
"stat" :
"dynamisk": sant,
"typ": "objekt",
--------------------------UTGÅNG TRUNKERAD-----------------------------------
Hur man tar bort mallar
Att radera en mall är lika enkelt som GET-mallen men med DELETE-begäran som:
RADERA _index_mall / mall_2Du kan använda kommandot cURL:
curl -XDELETE "http: // localhost: 9200 / _index_template / template_2"Detta kommando raderar automatiskt den angivna mallen.
Slutsats
Denna handledning behandlade vad Elasticsearch-indexmallar är, hur de fungerar och hur man skapar, visar och tar bort indexmallar. Denna grundläggande information ska hjälpa dig att komma igång med att använda Elasticsearch-indexmallar.