集成ElasticClient客户端

创建 Config 包

在包当中新建一个:ElasticSearchConfig.java,内容如下,主要的大致内容就是配置 ES 服务器的连接超时时长与请求相关的时长配置还有就是配置了 ES 服务器的地址:

/**
 * @author BNTang
 * @version V1.0
 * @project SpringBoot-ElasticSearch-Pro
 * @date Created in 2022/3/5 /005 17:49
 * @description elasticsearch 配置类
 **/
@Configuration
public class ElasticSearchConfig {
    private final Log logger = LogFactory.getLog(ElasticSearchConfig.class);

    @Value("${elasticsearch.hosts}")
    private String elasticSearchHost;

    @Value("${elasticsearch.connection.timeout}")
    private int elasticSearchConnectionTimeOut;

    @Value("${elasticsearch.connection.socket.timeout}")
    private int elasticSearchCollectionSocketTimeOut;

    @Value("${elasticsearch.connection.request.timeout}")
    private int elasticSearchConnectionRequestTimeOut;

    @Bean
    public ElasticsearchClient elasticSearchClient() {
        RestClient restClient = RestClient.builder(this.getElasticSearchHttpHosts())
                .setRequestConfigCallback(builder -> {
                    builder.setConnectTimeout(elasticSearchConnectionTimeOut);
                    builder.setSocketTimeout(elasticSearchCollectionSocketTimeOut);
                    builder.setConnectionRequestTimeout(elasticSearchConnectionRequestTimeOut);
                    return builder;
                })
                .setFailureListener(new RestClient.FailureListener() {
                    @Override
                    public void onFailure(Node node) {
                        logger.error(node);
                    }
                })
                .build();
        RestClientTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());
        return new ElasticsearchClient(transport);
    }

    private HttpHost[] getElasticSearchHttpHosts() {
        String[] hosts = elasticSearchHost.split(",");
        HttpHost[] httpHosts = new HttpHost[hosts.length];
        for (int i = 0; i < hosts.length; i++) {
            String host = hosts[i];
            host = host.replaceAll("http://", "").replaceAll("https://", "");
            httpHosts[i] = new HttpHost(host.split(":")[0], Integer.parseInt(host.split(":")[1]));
        }
        return httpHosts;
    }
}

修改 application.yaml 文件,添加 ES 服务器地址与超时的相关配置:

# elasticsearch
elasticsearch:
  # 如果有多个以逗号分割即可例如:xxxx,xxxx
  hosts: 180.76.177.246:9200
  connection:
    timeout: 10000
    request:
      # 请求超时时长
      timeout: 10000
    socket:
      timeout: 10000

到这里博主认为大差不差了,就先记录这么多吧,接下来就是利用该客户端进行操作ES即可。

posted @   BNTang  阅读(228)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示