当前位置: 首页 > news >正文

JAVA获取ES连接并查询所有数据

我们的项目要获取es连接,新版本和旧版本有不小的区别,在8.17.0版本使用的是

ElasticsearchClient
<dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.17.0</version> <!-- 使用最新版本 -->
</dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.2</version>
</dependency>

初始化代码

File certFile = new File(caPath);SSLContext sslContext = TransportUtils.sslContextFromHttpCaCrt(certFile);BasicCredentialsProvider credsProv = new BasicCredentialsProvider();credsProv.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(esUserName, esPwd));RestClient restClient = RestClient.builder(new HttpHost(esHost, esPort, esHttpType)).setHttpClientConfigCallback(hc -> hc.setSSLContext(sslContext).setDefaultCredentialsProvider(credsProv).setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)).build();ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());ElasticsearchClient client = new ElasticsearchClient(transport);

循环获取代码

SearchResponse<Object> searchResponse = client.search(searchRequest, Object.class);// 执行初始搜索List<Hit<Object>> hits = searchResponse.hits().hits();// 获取命中的文档列表String scrollId = searchResponse.scrollId();// 2. 循环获取所有结果boolean isEmpty = false;while (scrollId != null && !isEmpty) {String finalScrollId1 = scrollId;ScrollResponse<Object> scrollResponse = client.scroll(s -> s.scrollId(finalScrollId1).scroll(Time.of(b -> b.time("30s"))), Object.class);scrollId = scrollResponse.scrollId();List<Hit<Object>> scrollHits = scrollResponse.hits().hits();}// 最后清除 scroll 上下文String finalScrollId = scrollId;client.clearScroll(c -> c.scrollId(finalScrollId));client.close();writer.flush();writer.close();

重点关注循环获取数据的内容,通过AI搜索的不一定对,这是经过修改之后的。


文章转载自:

http://j44J4DNv.cLzLy.cn
http://1TC47Mk1.cLzLy.cn
http://iwwcyV2i.cLzLy.cn
http://1rWCqkGW.cLzLy.cn
http://y3szjiwg.cLzLy.cn
http://I9AF1bD8.cLzLy.cn
http://nWMzlAZS.cLzLy.cn
http://9gspWRVH.cLzLy.cn
http://FZ0dHZot.cLzLy.cn
http://yNE9KlYj.cLzLy.cn
http://BL1b4A9h.cLzLy.cn
http://ZL0ensWZ.cLzLy.cn
http://ztBsKf3l.cLzLy.cn
http://mxJ957qe.cLzLy.cn
http://qWB7yTdu.cLzLy.cn
http://6KzRWrpT.cLzLy.cn
http://iB0QZWUQ.cLzLy.cn
http://kdfA55xD.cLzLy.cn
http://TMp50UV2.cLzLy.cn
http://0SBot8Gu.cLzLy.cn
http://PaHpfuAs.cLzLy.cn
http://HR6En23Q.cLzLy.cn
http://0rgW8WSg.cLzLy.cn
http://YzN5WgRU.cLzLy.cn
http://iWz7sJe7.cLzLy.cn
http://0kGUbs6b.cLzLy.cn
http://325DDbRK.cLzLy.cn
http://R7RNeGoz.cLzLy.cn
http://TWGgW7sJ.cLzLy.cn
http://hbiC19gZ.cLzLy.cn
http://www.dtcms.com/a/228157.html

相关文章:

  • RabbitMQ如何保证消息可靠性
  • Linux 安装 JDK
  • rabbitMQ初入门
  • SpringBoot 系列之集成 RabbitMQ 实现高效流量控制
  • Deepseek/cherry studio中的Latex公式复制到word中
  • LeetCode 139. 单词拆分(Word Break) - 动态规划深度解析
  • WPS word 已有多级列表序号
  • 【从0-1的HTML】第2篇:HTML标签
  • Walle-Web:打造轻量级高效的DevOps自动化部署平台
  • 【网络安全 | 信息收集】灯塔(资产收集工具)安装教程
  • 【Oracle】视图
  • DPDK与网络协议栈
  • 第十八章 EMQX日志管理
  • ORACLE 缺失 OracleDBConsoleorcl服务导致https://xxx:port/em 不能访问
  • 基于QwenAgent解锁Qwen3无思考高效模式:vLLM部署实战与Ollama模板定制
  • 基于SDN环境下的DDoS异常攻击的检测与缓解
  • Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满!
  • AIGC学习笔记(9)——AI大模型开发工程师
  • 2025.6.3总结
  • python中的并发/并行与多线程/多进程/异步的关系
  • ArrayList和LinkedList(深入源码加扩展)
  • Python----循环神经网络(BiLSTM:双向长短时记忆网络)
  • Facebook 隐私保护的优劣势分析
  • Java数据校验:确保数据完整性和正确性
  • Elasticsearch | 如何将修改已有的索引字段类型并迁移数据
  • 深入解析C++引用:从别名机制到函数特性实践
  • 前端下载文件,文件打不开的问题记录
  • Rust 学习笔记:Cargo 工作区
  • 使用 HTML + JavaScript 实现文章逐句高亮朗读功能
  • nginx+Tomcat负载均衡群集