(3) Compréhension des connaissances de base d'ElasticSearch (structure de répertoire, index, RESTful)

1. Structure du répertoire ElasticSearch

  • bin : contient des fichiers exécutables d'Elasticsearch, tels que elasticsearch (pour démarrer Elasticsearch), elasticsearch-plugin (pour gérer les plugins), etc.

  • config : contient les fichiers de configuration pour Elasticsearch.

    • elasticsearch.yml : Le fichier de configuration principal, utilisé pour configurer divers paramètres d'Elasticsearch, tels que le nom du cluster, les paramètres du nœud, la configuration du réseau, etc.
    • jvm.options : utilisé pour configurer les paramètres JVM du nœud Elasticsearch, tels que l'allocation de mémoire, la récupération de place, etc.
    • log4j2.properties : utilisé pour configurer les paramètres de journalisation pour Elasticsearch.
      data : le répertoire de données par défaut pour stocker les données d'index Elasticsearch et les fichiers associés. Chaque nœud aura un sous-répertoire sous ce répertoire pour stocker les données du nœud.
  • logs : stocke les fichiers journaux d'Elasticsearch.

  • plugins : fichiers de plug-in utilisés pour stocker Elasticsearch. Lorsque vous installez des plugins tiers, ils seront placés dans ce répertoire.

  • config/scripts : stockez les fichiers de script Elasticsearch, tels que les scripts de requête, les scripts d'agrégation, etc.

  • config/templates : stocke les fichiers de modèle d'index d'Elasticsearch, qui sont utilisés pour définir le mappage, les paramètres et les alias de l'index.

  • config/ingest-geoip : contient des fichiers de données pour le plugin Ingest GeoIP pour le traitement des informations de géolocalisation.

Ceci n'est qu'un exemple de base de la structure de répertoires d'Elasticsearch, la structure de répertoires de l'installation réelle peut varier en fonction de la version et de la méthode d'installation. Après avoir installé Elasticsearch, vous pouvez parcourir ces répertoires et fichiers pour acquérir une compréhension approfondie de la configuration et du mécanisme de stockage des données d'Elasticsearch, et personnaliser et gérer en conséquence.

2. Comprendre les concepts de base d'ElasticSearch

  • Index (Index) : L'index est le conteneur de données de plus haut niveau dans Elasticsearch, qui est similaire à une base de données dans une base de données relationnelle. Un index contient un groupe de documents avec une structure similaire et fournit des capacités de recherche, de récupération et d'analyse rapides pour ces documents. ( Semblable aux bases de données dans la base de données relationnelle MySQL )

  • Document : un document est l'unité de base du stockage et de l'indexation d'Elasticsearch. Il s'agit d'un document JSON avec des données structurées, qui peuvent être n'importe quel type de données, telles que des informations sur le produit, des données utilisateur, des entrées de journal, etc. Chaque document a un identifiant unique (ID) qui est utilisé pour identifier et récupérer de manière unique le document dans l'index. ( Semblable à une ligne de données dans une table de la base de données relationnelle MySQL )

  • Type : dans Elasticsearch 7.x et versions ultérieures, le concept de type est obsolète. Dans les versions antérieures, un index pouvait contenir plusieurs types pour classer différents types de documents. Cependant, à partir d'Elasticsearch 7.x, un index ne peut contenir qu'un seul type par défaut _doc et le concept de type est progressivement supprimé. ( Similaire aux tables de la base de données relationnelle MySQL )

  • Mappage : le mappage définit la structure du document et les types de données des champs de l'index. Il indique à Elasticsearch comment stocker et indexer les champs dans les documents, et décide comment analyser et traiter les demandes de requête. Les mappages peuvent être définis manuellement ou créés automatiquement par Elasticsearch en fonction du contenu du document. ( Similaire à la structure d'une table dans la base de données relationnelle MySQL, y compris les noms de colonnes, les types de données et les contraintes )

  • Requête : les requêtes sont utilisées pour rechercher et récupérer des documents dans Elasticsearch. Elasticsearch fournit des fonctions de requête riches, y compris la recherche en texte intégral, la correspondance exacte, la requête de plage, l'agrégation, etc. Vous pouvez créer des requêtes à l'aide d'un langage de requête tel que Query DSL ou d'une syntaxe de chaîne de requête simplifiée.

  • Agrégation : L'agrégation est une fonction utilisée pour analyser et résumer les données. Il vous permet de regrouper, compter, additionner, moyenner, max, min, etc. des documents en fonction de critères spécifiés et de renvoyer des résultats agrégés. Les agrégations peuvent vous aider à mieux comprendre les caractéristiques et les modèles statistiques de vos données.

  • Cluster : un cluster est un groupe logique d'un ou plusieurs nœuds Elasticsearch. Dans un cluster, les données sont partitionnées et répliquées sur plusieurs nœuds pour fournir une haute disponibilité et une tolérance aux pannes. Le cluster gère et coordonne la distribution des données, l'équilibrage de charge et la reprise après incident entre les nœuds.

  • Nœud (nœud) : un nœud est une instance distincte du cluster Elasticsearch, qui fait partie du cluster. Les nœuds peuvent être des nœuds maîtres ou des nœuds de données. Le nœud maître est responsable de la gestion de l'ensemble

  • Fragments et répliques (shard) : une réplique est une copie d'un fragment. Les fragments sont divisés en fragments primaires et en fragments répliques.
    Les données d'un index sont physiquement distribuées dans plusieurs fragments primaires, et chaque fragment primaire ne stocke qu'une partie des données.
    Chaque fragment principal peut avoir plusieurs copies, appelées fragments de réplique, qui sont des copies du fragment principal.

3. Introduction à ElasticSearch, API RESTful

Elasticsearch fournit l'API RESTful (Representational State Transfer) comme principal moyen d'interagir avec elle. Avec une API RESTful, vous pouvez utiliser diverses méthodes HTTP telles que GET, POST, PUT, DELETE pour effectuer diverses opérations, notamment l'indexation de données, la recherche de documents, la réalisation d'agrégations, la gestion d'index, etc.
Voici quelques API Elasticsearch RESTful couramment utilisées :

Indexer les documents :

PUT /index/_doc/id:创建或替换指定 ID 的文档。
POST /index/_doc:创建新的文档,Elasticsearch 自动生成 ID。
GET /index/_doc/id:获取指定 ID 的文档。
DELETE /index/_doc/id:删除指定 ID 的文档。

recherche:

GET /index/_search:执行全文搜索操作,返回匹配查询条件的文档。
POST /index/_search:执行复杂的搜索查询,可以包含过滤器、排序、聚合等。

polymérisation:

POST /index/_search:结合聚合查询来对文档进行分组、计数、求和、平均值、最大值、最小值等操作。
GET /index/_search:使用 URI 查询字符串语法执行简单的聚合操作。

Gestion des index :

PUT /index:创建新的索引。
DELETE /index:删除指定索引。
GET /index/_mapping:获取索引的映射信息。

Gestion des clusters et des nœuds :

GET /_cat/health:获取集群的健康状态。
GET /_cat/nodes:获取集群中的节点信息。
GET /_cat/indices:获取集群中的索引信息。

Ce qui précède ne sont que quelques exemples de l'API Elasticsearch RESTful, il existe de nombreuses autres API et paramètres qui peuvent être utilisés pour effectuer diverses opérations en cours d'utilisation. Vous pouvez interagir avec Elasticsearch en envoyant des requêtes HTTP, utiliser le chemin et les paramètres appropriés pour effectuer l'opération souhaitée et obtenir les résultats et les données en réponse.

Pour utiliser l'API Elasticsearch RESTful, vous pouvez utiliser n'importe quel outil prenant en charge les requêtes HTTP, telles que les requêtes cURL, Postman, Python, etc. En outre, Elasticsearch fournit également des bibliothèques clientes officielles qui simplifient l'interaction avec Elasticsearch, telles que Elasticsearch-PHP, Elasticsearch-Java, Elasticsearch-Py, etc.

おすすめ

転載: blog.csdn.net/csdn570566705/article/details/131200014