Elasticsearch-indexen maken

How Create Elasticsearch Indices



Elasticsearch is een onderdeel van de populaire ELK-stack die wordt gebruikt voor loganalyse en zoeken. Applicaties en systemen loggen voortdurend gegevens die erg handig kunnen zijn voor het oplossen van problemen en het volgen van problemen. Met behulp van de ELK-stack beschikt u over de beste tools om deze taken snel en zeer eenvoudig uit te voeren.

In deze korte tutorial zullen we kijken naar Elasticsearch, in het bijzonder hoe je indices maakt in de Elasticsearch-engine. Hoewel u geen uitgebreide kennis over ELK-stack nodig hebt om deze zelfstudie te volgen, kan een basiskennis van de volgende onderwerpen voordelig zijn:







  • Met behulp van de terminal, in het bijzonder, cURL
  • Basiskennis van API's en JSON
  • HTTP-verzoek maken

OPMERKING: Deze tutorial gaat er ook van uit dat Elasticsearch op je systeem is geïnstalleerd en actief is.



Wat zijn Elasticsearch-indexen?

Zonder de dingen te simplificeren of te ingewikkeld te maken, is een Elasticsearch-index een verzameling gerelateerde JSON-documenten.



Zoals vermeld in een eerdere post, zijn Elasticsearch-indexen JSON-objecten - beschouwd als de basiseenheid van opslag in Elasticsearch. Deze gerelateerde JSON-documenten worden opgeslagen in een enkele eenheid die een index vormt. Zie Elasticsearch-documenten als tabellen in een relationele database.





Laten we een Elasticsearch-index relateren aan een database in de SQL-wereld.

  • MySQL => Databases => Tabellen => Kolommen/Rijen
  • Elasticsearch => Indices => Types => JSON-documenten met eigenschappen

Een Elasticsearch-index maken

Elasticsearch maakt gebruik van een krachtige en intuïtieve REST API om zijn diensten te ontsluiten. Met deze functionaliteit kunt u HTTP-verzoeken gebruiken om bewerkingen uit te voeren op het Elasticsearch-cluster. Daarom zullen we de create index API gebruiken om een ​​nieuwe index te maken.



Voor deze handleiding gebruiken we cURL om de verzoeken te verzenden en de integriteit en bruikbaarheid voor alle gebruikers te behouden. Als je echter fouten tegenkomt met cURL, overweeg dan om Kibana Console te gebruiken.

De syntaxis voor het maken van een nieuwe index in Elasticsearch-cluster is:

LEGGEN /

Om een ​​index te maken, hoeft u alleen maar de indexnaam door te geven zonder andere parameters, waardoor een index wordt gemaakt met behulp van standaardinstellingen.

U kunt ook verschillende kenmerken van de index specificeren, zoals in de hoofdtekst van de index:

  • De instellingen voor de index
  • Index aliassen
  • Toewijzingen voor indexvelden

De indexnaam is een vereiste parameter; anders krijg je een foutmelding voor de URL (/)

curl -X PUT localhost:9200
{'error':'Onjuiste HTTP-methode voor uri [/] en methode [PUT], toegestaan: [DELETE, HEAD, GET]','status':405}

Om een ​​nieuwe index te maken met de naam single_index, geven we het verzoek door:

PUT /single_index

Gebruik voor cURL het commando:

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

Deze opdracht moet resulteren in HTTP Status 200 OK en een bericht met bevestigd: waar als:

{
erkend: waar,
'shards_acknowledged' : waar,
'index' : 'single_index'
}

Het bovenstaande verzoek creëert een index single_index met standaardinstellingen omdat we geen configuraties hebben opgegeven.

Naamgevingsregels voor indexen

Bij het maken van namen voor Elasticsearch-indexen moet u zich houden aan de volgende naamgevingsnormen:

  1. De indexnaam mag alleen in kleine letters zijn.
  2. De indexnamen mogen niet beginnen met een streepje (-), een onderstrepingsteken (_) of een optelteken (+)
  3. De namen kunnen niet . of ..
  4. Indexnamen mogen geen speciale tekens bevatten, zoals: , /, *, ?, , , |, ` ` (spatieteken), ,, #
  5. De lengte van indexnamen moet kleiner zijn dan 255 bytes. Multibyte-tekens tellen mee voor de totale lengte van de indexnaam. Als een enkel teken bijvoorbeeld 8 bytes lang is, is de totale resterende lengte van de naam 255 – 8
  6. In de nieuwste versie van Elasticsearch zijn namen die beginnen met een . zijn gereserveerd voor verborgen indexen en interne indexen die worden gebruikt door Elasticsearch-plug-ins.

Een indextekst maken

Wanneer u het PUT-verzoek gebruikt om een ​​index te maken, kunt u verschillende argumenten doorgeven die de instellingen definiëren voor de index die u wilt maken. Waarden die u in de hoofdtekst kunt opgeven, zijn onder meer:

  • aliassen: Specificeert aliasnamen voor de index die u wilt maken; deze parameter is optioneel.
  • Instellingen: Dit definieert de configuratie-opties voor de index die u wilt maken. Als u geen parameters opgeeft, wordt de index gemaakt met behulp van standaardconfiguraties.
  • toewijzingen: Dit definieert de toewijzing voor velden in de index. De specificaties die u in toewijzingen kunt opnemen, zijn onder meer:
    • De veldnaam
    • Het gegevenstype
    • De toewijzingsparameter

Bekijk het onderstaande verzoek voor een voorbeeld van het maken van een index met body-configuraties:

PUT /single_index_with_body
{
'instellingen': {
'aantal_van_scherven': 2,
'aantal_replica's': 2
},
toewijzingen: {
'eigendommen': {
'field1': { 'type': 'object' }
}
}
}

Voor een cURL-equivalent verzoek:

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

Met de bovenstaande aanvraag wordt een nieuwe index gemaakt met de naam single_index_with_body met 2 aantallen shards en 2 replica's. Het maakt ook een toewijzing met een veld met de naam veld1 en typt als een JSON-object.

Nadat u het verzoek heeft verzonden, krijgt u een reactie met de status van het verzoek als:

{
erkend: waar,
'shards_acknowledged' : waar,
'index' : 'single_index_with_body'
}

Acknowledged geeft aan of de index is gemaakt in het cluster, terwijl shards_acknowledged laat zien of het vereiste aantal shard-kopieën is gestart voor elke shard in de opgegeven index voordat de time-out optreedt.

Elasticsearch-index bekijken

Om de informatie over de index die u hebt gemaakt te bekijken, gebruikt u een verzoek dat vergelijkbaar is met dat van het maken van een index, maar gebruikt u de HTTP-methode in plaats van PUT als:

GET /single_index_with_body

Voor krul,

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

Deze opdracht geeft u gedetailleerde informatie over de gevraagde index als:

{
'single_index_with_body': {
'aliassen' : { },
'toewijzingen' : {
'eigendommen' : {
'veld1' : {
'type' : 'object'
}
}
},
'instellingen' : {
'inhoudsopgave' : {
'routering' : {
'toewijzing' : {
'erbij betrekken' : {
'_tier_preference' : 'data_content'
}
}
},
'aantal_van_scherven' : '2',
'provided_name' : 'single_index_with_body',
'creation_date' : '1611045687208',
'aantal_replica's' : '2',
'uuid' : '3TRkO7xmQcSUOOGtb6pXVA',
'versie' : {
'gemaakt' : '7100299'
}
}
}
}
}

Conclusie

In deze handleiding wordt besproken hoe u met Elasticsearch kunt werken om een ​​index-API te maken om nieuwe indices te maken. We hebben ook besproken hoe u geschikte namen voor de indices en configuratie-instellingen kunt maken.

Door deze handleiding te gebruiken, kunt u nu indexen maken en bekijken met behulp van de Elasticsearch API.