Cliente Elasticsearch para Java: guía completa de conexión y trabajo

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Cliente Elasticsearch para Java: guía completa



Elasticsearch es un potente sistema de búsqueda y análisis distribuido basado en Lucene. Para interactuar con él desde aplicaciones Java, existe un cliente oficial que proporciona una API conveniente para indexar, buscar y gestionar datos. En este artículo, analizaremos en detalle la instalación, configuración y las principales capacidades del cliente Java de Elasticsearch, además de proporcionar ejemplos prácticos de código.



¿Qué es el cliente Java de Elasticsearch?

El cliente Java de Elasticsearch es una biblioteca oficial diseñada para interactuar con un clúster de Elasticsearch desde aplicaciones Java. Admite dos enfoques principales:

  • Low-level REST Client — un cliente de bajo nivel que trabaja directamente con solicitudes HTTP. Ofrece control total, pero requiere la creación manual de JSON.
  • High-level REST Client — un envoltorio de alto nivel que proporciona una API orientada a objetos para operaciones típicas (indexación, búsqueda, actualización). Se recomienda para la mayoría de los proyectos.

A partir de Elasticsearch 7.0, se recomienda utilizar el High-level REST Client, ya que es más conveniente y seguro.



Instalación y conexión

Para conectar el cliente a un proyecto Java (Maven), agregue la siguiente dependencia en el archivo pom.xml:

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


Si usa Gradle, agregue la línea:

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


Después de agregar la dependencia, cree una instancia del cliente:

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")) ); // Su código para trabajar con Elasticsearch try { client.close(); } catch (IOException e) { e.printStackTrace(); } }}


Operaciones principales con el cliente



Creación de un índice

Antes de comenzar a trabajar con datos, es necesario crear un índice (análogo a una base de datos en SQL). Ejemplo:

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("Índice creado: " + response.isAcknowledged());}


Indexación de un documento

Los documentos en Elasticsearch son objetos JSON. Para agregar un documento, use 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", "Cliente Elasticsearch para Java"); jsonMap.put("content", "Descripción detallada del trabajo con Elasticsearch desde Java."); jsonMap.put("views", 150);

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

IndexResponse respon

Recommendations