I denna snabba handledning kommer vi att titta på Elasticsearch, specifikt hur man skapar index i Elasticsearch-motorn. Även om du inte behöver någon omfattande kunskap om ELK-stacken för att följa denna handledning kan det vara fördelaktigt att ha en grundläggande förståelse för följande ämnen:
- Använda terminalen, specifikt, cURL
- Grundläggande kunskap om API: er och JSON
- Gör HTTP-begäran
NOTERA: Denna handledning förutsätter också att du har Elasticsearch installerat och körs på ditt system.
Vad är elastiska sökindex?
Utan att förenkla eller överkomplicera saker är ett Elasticsearch-index en samling relaterade JSON-dokument.
Som nämnts i ett tidigare inlägg är Elasticsearch-index JSON-objekt, betraktade som basenheten för lagring i Elasticsearch. Dessa relaterade JSON-dokument lagras i en enda enhet som utgör ett index. Tänk på Elasticsearch-dokument som tabeller i en relationsdatabas.
Låt oss relatera ett Elasticsearch-index som en databas i SQL-världen.
- MySQL => Databaser => Tabeller => Kolumner / rader
- Elasticsearch => Index => Typer => JSON-dokument med egenskaper
Hur man skapar ett Elasticsearch-index
Elasticsearch använder ett kraftfullt och intuitivt REST API för att exponera sina tjänster. Med den här funktionen kan du använda HTTP-förfrågningar för att utföra åtgärder på Elasticsearch-klustret. Därför använder vi API för att skapa index för att skapa ett nytt index.
För den här guiden kommer vi att använda cURL för att skicka förfrågningarna och bevara integritet och användbarhet för alla användare. Om du stöter på fel med cURL kan du dock överväga att använda Kibana Console.
Syntaxen för att skapa ett nytt index i Elasticsearch-klustret är:
PUT /För att skapa ett index är allt du behöver göra att skicka indexnamnet utan andra parametrar, vilket skapar ett index med standardinställningar.
Du kan också ange olika funktioner i indexet, till exempel i indexet:
- Inställningarna för indexet
- Indexalias
- Kartläggningar för indexfält
Indexnamnet är en obligatorisk parameter; annars får du ett fel för URIL (/)
curl -X PUT “localhost: 9200”"error": "Fel HTTP-metod för uri [/] och metod [PUT], tillåten: [DELETE, HEAD, GET]", "status": 405
För att skapa ett nytt index med namnet single_index skickar vi begäran:
PUT / single_indexFör cURL, använd kommandot:
curl -X PUT "localhost: 9200 / single_index?Söt"Detta kommando bör resultera i HTTP-status 200 OK och ett meddelande med bekräftat: sant som:
”Erkänt”: sant,
"shards_acknowledged": sant,
"index": "single_index"
Förfrågan ovan skapar ett index single_index med standardinställningar eftersom vi inte angav några konfigurationer.
Regler för indexnamn
När du skapar namn för Elasticsearch-index måste du följa följande namnstandarder:
- Indexnamnet får endast vara med gemener.
- Indexnamnen kan inte börja med en streck (-), en understrykning (_) eller ett tilläggstecken (+)
- Namnen kan inte vara . eller…
- Indexnamn kan inte innehålla specialtecken som: \, /, *, ?, “, <, >, |, "(mellanslag), ,, #
- Längden på indexnamnen måste vara mindre än 255 byte. Multi-byte-tecken räknas i den totala längden på indexnamnet. Till exempel, om ett enstaka tecken är 8 byte långt, är den totala återstående längden på namnet 255 - 8
- I den senaste versionen av Elasticsearch, namn som börjar med a . är reserverade för dolda index och interna index som används av Elasticsearch-plugins.
Hur man skapar en indexkropp
När du använder PUT-begäran för att skapa ett index kan du skicka olika argument som definierar inställningarna för det index du vill ha skapat. Värden som du kan ange i kroppen inkluderar:
- Alias: Anger aliasnamn för det index du vill skapa; den här parametern är valfri.
- Inställningar: Detta definierar konfigurationsalternativen för det index du vill skapa. Om du inte anger några parametrar skapas indexet med standardkonfigurationer.
- Kartläggningar: Detta definierar kartläggningen för fält i indexet. Specifikationerna du kan inkludera i mappningar inkluderar:
- Fältets namn
- Datatypen
- Kartläggningsparametern
För ett exempel på att skapa ett index med kroppskonfigurationer, överväg begäran nedan:
PUT / single_index_with_body"inställningar":
"number_of_shards": 2,
"number_of_replicas": 2
,
“Mappings”:
"egenskaper":
"field1": "type": "object"
För en motsvarande begäran för CURL:
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" : "egenskaper": "field1": "type": "objekt" 'Ovanstående begäran skapar ett nytt index med namnet single_index_with_body med 2 antal skärvor och 2 repliker. Det skapar också en mappning med ett fält med namnfält1 och skriver som ett JSON-objekt.
När du har skickat begäran får du ett svar med status för begäran som:
”Erkänt”: sant,
"shards_acknowledged": sant,
"index": "single_index_with_body"
"Bekräftad" visar om indexet skapades framgångsrikt i klustret, medan "shards_acknowledged" visar om det erforderliga antalet skärvkopior startades för varje skärv i det angivna indexet innan timeout.
Hur man ser Elasticsearch Index
För att se informationen om det index du skapade, använd en liknande begäran som för att skapa ett index, men använd HTTP-metoden istället för PUT som:
GET / single_index_with_bodyFör CURL,
curl -XGET “http: // localhost: 9200 / single_index_with_body”Detta kommando ger dig detaljerad information om det begärda indexet som:
"single_index_with_body":
"alias": ,
"mappningar":
"egenskaper" :
"field1":
"typ": "objekt"
,
"inställningar" :
"index":
"routing":
"allokering":
"inkludera":
"_tier_preference": "data_innehåll"
,
"number_of_shards": "2",
"provided_name": "single_index_with_body",
"creation_date": "1611045687208",
"number_of_replicas": "2",
"uuid": "3TRkO7xmQcSUOOGtb6pXVA",
"version":
"skapade": "7100299"
Slutsats
Den här guiden diskuterade hur man arbetar med Elasticsearch för att skapa index-API för att skapa nya index. Vi diskuterade också hur man skapar lämpliga namn för index och konfigurationsinställningar.
Genom att använda den här guiden kan du nu skapa och visa index med hjälp av Elasticsearch API.