Client Elasticsearch pour Java : guide complet de connexion et d'utilisation

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Client Elasticsearch pour Java : guide complet



Elasticsearch est un puissant système de recherche et d'analyse distribué basé sur Lucene. Pour interagir avec lui depuis des applications Java, il existe un client officiel qui fournit une API pratique pour l'indexation, la recherche et la gestion des données. Dans cet article, nous allons détailler l'installation, la configuration et les principales fonctionnalités du client Java Elasticsearch, ainsi que fournir des exemples de code pratiques.



Qu'est-ce que le client Java Elasticsearch ?

Le client Java Elasticsearch est une bibliothèque officielle conçue pour interagir avec un cluster Elasticsearch depuis des applications Java. Il prend en charge deux approches principales :

  • Low-level REST Client — un client de bas niveau qui fonctionne directement avec les requêtes HTTP. Il offre un contrôle total, mais nécessite la création manuelle du JSON.
  • High-level REST Client — une surcouche de haut niveau qui fournit une API orientée objet pour les opérations courantes (indexation, recherche, mise à jour). Recommandé pour la plupart des projets.

Depuis Elasticsearch 7.0, il est recommandé d'utiliser le High-level REST Client, car il est plus pratique et plus sûr.



Installation et connexion

Pour ajouter le client à un projet Java (Maven), ajoutez la dépendance suivante dans le fichier pom.xml :

<dependency>    <groupId>org.elasticsearch.client</groupId>    <artifactId>elasticsearch-rest-high-level-client</artifactId>    <version>7.17.0</version></dependency>


Si vous utilisez Gradle, ajoutez la ligne :

implementation 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.17.0'


Après avoir ajouté la dépendance, créez une instance du client :

import org.elasticsearch.client.RestHighLevelClient;import org.elasticsearch.client.RestClient;import org.apache.http.HttpHost;

public class ElasticsearchClientExample { public static void main(String[] args) { RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http")) ); // Votre code pour travailler avec Elasticsearch try { client.close(); } catch (IOException e) { e.printStackTrace(); } }}


Opérations principales avec le client



Création d'un index

Avant de commencer à travailler avec les données, vous devez créer un index (équivalent d'une base de données en SQL). Exemple :

import org.elasticsearch.client.indices.CreateIndexRequest;import org.elasticsearch.client.indices.CreateIndexResponse;import org.elasticsearch.client.RequestOptions;

public void createIndex(RestHighLevelClient client, String indexName) throws IOException { CreateIndexRequest request = new CreateIndexRequest(indexName); CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT); System.out.println("Index créé : " + response.isAcknowledged());}


Indexation d'un document

Les documents dans Elasticsearch sont des objets JSON. Pour ajouter un document, utilisez IndexRequest :

import org.elasticsearch.action.index.IndexRequest;import org.elasticsearch.action.index.IndexResponse;import org.elasticsearch.common.xcontent.XContentType;import java.util.HashMap;import java.util.Map;

public void indexDocument(RestHighLevelClient client, String indexName) throws IOException { Map<String, Object> jsonMap = new HashMap<>(); jsonMap.put("title", "Client Elasticsearch pour Java"); jsonMap.put("content", "Description détaillée du travail avec Elasticsearch depuis Java."); jsonMap.put("views", 150);

IndexRequest request = new IndexRequest(indexName) .id("1") .source(jsonMap);

IndexResponse respon

Recommendations