集成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即可。
标签:
ElasticSearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具