Comprendre Index et Mapping dans Elasticsearch

Bien sûr! Voici la traduction de l'explication et des exemples pour Index et Mapping dans Elasticsearch:

Index dans Elasticsearch

Un Index in Elasticsearch est similaire à une base de données dans les systèmes de gestion de base de données traditionnels(SGBD). Il stocke une collection de documents connexes. Chacun Index correspond généralement à un type spécifique de données dans votre application. Par exemple, dans une application de commerce électronique, vous pouvez créer un Index pour stocker des informations sur les produits, un autre Index pour stocker des informations sur les utilisateurs et les commandes.

Chaque Index in Elasticsearch est divisé en fragments plus petits pour la distribution des données. Un fragment est une petite partie d'un Index, et chaque fragment peut être stocké sur un nœud distinct au sein d'un Elasticsearch cluster. Le fractionnement des données en fragments optimise les performances de recherche et d'interrogation et améliore l'évolutivité du système.

Par exemple, pour créer un nouveau Index nommé products  dans Elasticsearch, vous pouvez utiliser l'API ou des outils de gestion comme Kibana pour exécuter la commande suivante :

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

Dans l'exemple ci-dessus, nous avons créé un Index products avec 3 shard et 2 replica de chaque shard pour assurer la disponibilité et la sauvegarde des données.

 

Mapping dans Elasticsearch

Mapping est le processus de définition de la façon dont Elasticsearch stocke et traite les données dans un fichier Index. Lorsque vous ajoutez un nouveau document à un Index, Elasticsearch utilise Mapping pour déterminer le type de données de chaque champ du document. Cela aide à Elasticsearch comprendre comment traiter et rechercher des données dans différents domaines.

Par exemple, si nous avons un Index products et que nous voulons définir Mapping pour les champs name(nom du produit) et price  (prix du produit) respectivement les types texte et flottant, nous pouvons exécuter la commande suivante :

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

Dans l'exemple ci-dessus, nous avons défini Mapping pour l' products  Index, le name  champ ayant le type de données text et le champ de prix ayant le type de données float. Cela garantit que lors Elasticsearch de la réception de nouveaux documents pour l' products  index, il stockera et traitera les name  champs et "prix" en fonction des types de données définis.

Index et Mapping jouent un rôle crucial dans l'organisation et la gestion des données dans Elasticsearch. Ils aident Elasticsearch à comprendre et à traiter efficacement les données, à optimiser les opérations de recherche et d'interrogation et à fournir des capacités d'évolutivité flexibles pour le système.