Comprensione Index e Mapping dentro Elasticsearch

Sicuro! Ecco la traduzione della spiegazione e degli esempi per Index e Mapping in Elasticsearch:

Index In Elasticsearch

Un Index in Elasticsearch è simile a un database nei tradizionali sistemi di gestione dei database(DBMS). Memorizza una raccolta di documenti correlati. Ciascuno Index corrisponde in genere a un tipo specifico di dati nell'applicazione. Ad esempio, in un'applicazione di e-commerce, puoi creare un'applicazione Index per archiviare informazioni sui prodotti, un'altra Index per archiviare informazioni su utenti e ordini.

Ogni Index in Elasticsearch è diviso in frammenti più piccoli per la distribuzione dei dati. Uno Shard è una piccola parte di un Index e ogni Shard può essere memorizzato su un nodo separato all'interno di un Elasticsearch cluster. La suddivisione dei dati in frammenti ottimizza le prestazioni di ricerca e query e migliora la scalabilità del sistema.

Ad esempio, per creare un nuovo Index nome products  in Elasticsearch, puoi utilizzare l'API o strumenti di gestione come Kibana per eseguire il seguente comando:

PUT /products  
{  
  "settings": {  
    "number_of_shards": 3,  
    "number_of_replicas": 2  
  }  
}  

Nell'esempio precedente, abbiamo creato un file Index products con 3 shard e 2 replica di ciascuno shard per garantire la disponibilità e il backup dei dati.

 

Mapping In Elasticsearch

Mapping è il processo di definizione del modo in cui Elasticsearch archivia ed elabora i dati all'interno di un file Index. Quando aggiungi un nuovo documento a un Index, Elasticsearch utilizza Mapping per determinare il tipo di dati di ogni campo nel documento. Questo aiuta Elasticsearch a capire come elaborare e cercare i dati in diversi campi.

Ad esempio, se abbiamo un Index products e vogliamo definire Mapping per i campi name(nome prodotto) e price  (prezzo prodotto) rispettivamente i tipi testo e float, possiamo eseguire il seguente comando:

PUT /products/_mapping  
{  
  "properties": {  
    "name": {  
      "type": "text"  
    },  
    "price": {  
      "type": "float"  
    }  
  }  
}  

Nell'esempio precedente, abbiamo definito Mapping per l' products  Indice, con il name  campo con il tipo di dati text e il campo del prezzo con il tipo di dati float. Ciò garantisce che quando Elasticsearch riceve nuovi documenti per l' products  Indice, memorizzerà ed elaborerà i name  campi e "prezzo" in base ai tipi di dati definiti.

Index e Mapping svolgono ruoli cruciali nell'organizzazione e nella gestione dei dati in Elasticsearch. Aiutano Elasticsearch a comprendere ed elaborare in modo efficiente i dati, ottimizzare le operazioni di ricerca e query e fornire funzionalità di scalabilità flessibili per il sistema.