连接ES的Java工具类

在现代的大数据应用中,Elasticsearch(简称ES)作为一个分布式搜索引擎,被广泛应用于日志分析、全文搜索等场景。为了方便Java开发者操作ES,我们可以使用连接ES的Java工具类。

ES Java工具类示例

下面是一个简单的ES Java工具类示例,用于连接ES服务器、创建索引和插入文档:

import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestClientBuilder.HttpClientConfigCallback;
import org.apache.http.HttpHost;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;

public class ESClientUtil {
    private static RestHighLevelClient restHighLevelClient;

    public static RestHighLevelClient getClient(String host, int port) {
        RestClientBuilder builder = RestClient.builder(new HttpHost(host, port, "http"))
            .setHttpClientConfigCallback(new HttpClientConfigCallback() {
                @Override
                public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                    return httpClientBuilder;
                }
            });
        
        restHighLevelClient = new RestHighLevelClient(builder);
        return restHighLevelClient;
    }

    public static void closeClient() {
        try {
            if (restHighLevelClient != null) {
                restHighLevelClient.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用ES Java工具类

使用上述工具类连接ES服务器并插入文档的示例代码如下:

import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        String host = "localhost";
        int port = 9200;
        
        // 连接ES服务器
        RestHighLevelClient client = ESClientUtil.getClient(host, port);
        
        // 创建索引并插入文档
        IndexRequest request = new IndexRequest("index_name");
        request.id("1");
        request.source("field", "value");
        
        try {
            IndexResponse response = client.index(request, RequestOptions.DEFAULT);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            ESClientUtil.closeClient();
        }
    }
}

ES连接Java工具类甘特图示例

gantt
    title ES连接Java工具类甘特图
    dateFormat  YYYY-MM-DD
    section 连接ES服务器
    连接ES服务器: 2022-07-01, 1d
    section 创建索引并插入文档
    创建索引并插入文档: 2022-07-02, 1d

总结

通过上述示例,我们可以看到使用ES Java工具类可以方便地连接ES服务器、创建索引和插入文档。这样的工具类可以大大简化Java开发者对ES的操作,提高开发效率。希望本文对你了解ES连接Java工具类有所帮助。