En aquest tema, explorarem els conceptes fonamentals d'Elasticsearch: nodes, clústers i índexs. Aquests conceptes són essencials per comprendre com funciona Elasticsearch i com es gestionen les dades dins del sistema.

Nodes

Què és un Node?

Un node és una instància d'Elasticsearch que forma part d'un clúster. Cada node és un servidor que emmagatzema dades i participa en les operacions de cerca i indexació.

Tipus de Nodes

  1. Master Node: Responsable de les operacions administratives, com la creació o eliminació d'índexs i la gestió de l'estat del clúster.
  2. Data Node: Emmagatzema les dades i executa operacions de cerca i agregació.
  3. Ingest Node: Processa les dades abans de la indexació, aplicant transformacions com enriquiment de dades.
  4. Coordinating Node: Gestiona les peticions de cerca i distribueix les sol·licituds als nodes de dades.

Configuració d'un Node

# elasticsearch.yml
node.name: node-1
node.master: true
node.data: true
node.ingest: true

Clústers

Què és un Clúster?

Un clúster és un conjunt de nodes que treballen junts per emmagatzemar dades i proporcionar capacitats de cerca. Cada clúster té un nom únic que s'utilitza per identificar-lo.

Components d'un Clúster

  1. Nodes: Com hem vist, els nodes són les instàncies individuals que formen el clúster.
  2. Índexs: Un clúster pot contenir múltiples índexs, cadascun dels quals emmagatzema un conjunt de documents relacionats.
  3. Shards: Els índexs es divideixen en fragments (shards) per distribuir les dades i les càrregues de treball entre els nodes.

Configuració d'un Clúster

# elasticsearch.yml
cluster.name: my-cluster

Índexs

Què és un Índex?

Un índex és una col·lecció de documents que tenen característiques similars. En termes de bases de dades tradicionals, un índex és similar a una taula.

Estructura d'un Índex

  1. Documents: La unitat bàsica d'informació que es pot indexar. Cada document és un objecte JSON.
  2. Tipus: En versions anteriors d'Elasticsearch, els índexs podien tenir múltiples tipus. A partir de la versió 6.x, es recomana utilitzar un sol tipus per índex.
  3. Shards i Replicació: Els índexs es divideixen en fragments (shards) per distribuir les dades. Cada fragment pot tenir rèpliques per garantir la disponibilitat i la tolerància a fallades.

Creació d'un Índex

PUT /my-index
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 2
  }
}

Indexació d'un Document

POST /my-index/_doc/1
{
  "title": "Elasticsearch Basics",
  "content": "Understanding nodes, clusters, and indices."
}

Cerca en un Índex

GET /my-index/_search
{
  "query": {
    "match": {
      "title": "Elasticsearch"
    }
  }
}

Resum

En aquest tema, hem après els conceptes bàsics d'Elasticsearch: nodes, clústers i índexs. Hem vist com es configuren els nodes i els clústers, i com es creen i gestionen els índexs. Aquests conceptes són fonamentals per treballar amb Elasticsearch i comprendre com es gestionen les dades dins del sistema.

En el proper tema, explorarem com indexar dades a Elasticsearch, incloent-hi exemples pràctics i exercicis per reforçar els conceptes apresos.

© Copyright 2024. Tots els drets reservats