Outils pour utilisateurs

Outils du site


software:applications:elasticsearch:010_premiers_pas

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
software:applications:elasticsearch:010_premiers_pas [2021/03/06 21:56] – créée 77.192.232.26software:applications:elasticsearch:010_premiers_pas [2021/06/18 07:48] (Version actuelle) 92.154.112.189
Ligne 3: Ligne 3:
 ====== Elasticsearch: premiers pas ====== ====== Elasticsearch: premiers pas ======
  
-Elasticsearch est RESTful, il est possible de communiquer avec l'application en utilisant de simples clients CLI tels que cURL ou HTTPie.+La communication avec Elasticsearch se fait via une API REST, il est possible d'utiliser de simples clients CLI tels que **cURL** ou **HTTPie**. Pour des requêtes plus évoluée des applications comme **Insomnia** pourront apporter plus de confort à l'utilisation. 
 + 
 +<note> 
 +**Kibana** intègre une console de développement avec de l'autocomplétion. **Management** > **Dev Tools** onglet **Console**. 
 +</note>
  
 Avec curl on pourra utiliser la syntaxe globale suivante: Avec curl on pourra utiliser la syntaxe globale suivante:
Ligne 12: Ligne 16:
 Où <VERB> est la méthode ou verbe HTTP (GET,POST,PUT,HEAD,DELETE) et <BODY> un corps encodé en JSON si nécessaire. Où <VERB> est la méthode ou verbe HTTP (GET,POST,PUT,HEAD,DELETE) et <BODY> un corps encodé en JSON si nécessaire.
  
 +===== A propos de l'architecture =====
 +
 +Quelques mots sur l'architecture d'elasticsearch:
 +
 +  * Une instance du serveur de base de données elasticsearch en cours d’exécution est désignée nœud.
 +  * Plusieurs noeuds forment un cluster, c'est ce fonctionnement en cluster qui permet de garantir la haute disponibilité en répartissant automatiquement les données entre les nœuds.
 +
 +
 +===== Afficher l'état des nœuds =====
 +
 +<code bash>
 +curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"
 +</code>
 +
 +===== Indexer un document =====
  
-===== Indexer quelques documents ===== 
  
 <code bash> <code bash>
Ligne 29: Ligne 47:
 curl -X GET "localhost:9200/customer/_doc/1?pretty" curl -X GET "localhost:9200/customer/_doc/1?pretty"
 </code> </code>
 +
 +===== Indexation par lots =====
 +
 +Pour indexer un grand volume de documents, l'API bulk(en masse) peut être utilisée. L'utilisation de cette API permettant de traiter par lots est bien plus rapide que la soumission par requêtes individuelles.
 +
 +Dans l'exemple ci-dessous, le document ''accounts.json'' contient les données structurées en JSON que l'on souhaite importer:
 + 
 +<code bash>
 +curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_bulk?pretty&refresh" --data-binary "@accounts.json"
 +</code>
 +
 +===== Afficher les status des index =====
 +
 +Une fois l'importation terminée, on peut afficher les statuts des index existants:
 +
 +<code bash>
 +curl -X GET "localhost:9200/_cat/indices?v=true"
 +</code>
 +
 +===== Recherche =====
 +
 +La recherche s'effectue en envoyant des requêtes sur le point d'entrée _search. Pour bénéficier de l'ensemble des capacités du moteur de recherche, on utilise la syntaxe Query DSL d'Elasticsearch pour définir les critères dans le corps de la requête. Le nom de l'index sur lequel lancer la recherche est spécifier dans l'URI:
 +
 +<code bash>
 +curl -X GET "localhost:9200/bank/_search?pretty" -H 'Content-Type: application/json' -d'
 +{
 +  "query": { "match_all": {} },
 +  "sort": [
 +    { "account_number": "asc" }
 +  ]
 +}
 +'
 +</code> 
 +
 +Dans l'exemple ci-dessus on récupère tous les documents que l'on tri par valeur ascendante du champ (field) "account_number".
 +
 +Par défaut la section "hits" de la réponse ne comporte que les 10 premiers documents correspondant aux critères de la recherche. La réponse fournit également des informations de contexte comme:
 +
 +  * **took**: le nombre de millisecondes nécessaires pour exécuter la requête.
 +  * **max_score** le score du plus
 +  * **hits.total.value**: nombre total de documents correspondant aux critères. 
  
 ===== Références ===== ===== Références =====
  
   * https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-index.html   * https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-index.html
software/applications/elasticsearch/010_premiers_pas.1615067784.txt.gz · Dernière modification : 2021/03/06 21:56 de 77.192.232.26