当前位置: 首页 > 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://www.lqws.cn/news/104185.html

相关文章:

  • Eigen实现非线性最小二乘拟合 + Gauss-Newton算法
  • Server2003 B-1 Windows操作系统渗透
  • Java项目OOM排查
  • 华为云Flexus+DeepSeek征文|基于华为云Flexus X实例的小说转语音助手应用构建实录
  • JS对数据类型的检测
  • CppCon 2014 学习:Lightning Talk: Writing a Python Interpreter for Fun and Profit
  • Java 调用第三方接口注意事项
  • Axure设计案例:滑动拼图解锁
  • 电子电路:全面深入了解晶振的定义、作用及应用
  • WordPress 6.5版本带来的新功能
  • 接口重试的7种常用方案!
  • Eureka 高可用集群搭建实战:服务注册与发现的底层原理与避坑指南
  • C++:优先级队列
  • SOC-ESP32S3部分:28-BLE低功耗蓝牙
  • 【数学】高斯积分+伽马函数公式自用背诵笔记
  • Rust 学习笔记:Cargo 工作区
  • CppCon 2014 学习:Rolling Your Own Circuit Simulator
  • 应用智能化转型—MCP原理分析
  • 帝可得 - 策略管理
  • 【MATLAB去噪算法】基于CEEMD联合小波阈值去噪算法(第三期)
  • c++基础(三)
  • Trae CN IDE自动生成注释功能测试与效率提升全解析
  • Linux: network : switch:hp5500
  • 情趣私域运营:打造高效转化的私域营销体系
  • 【Redis】笔记|第7节|大厂生产级Redis高并发分布式锁实战(二)
  • 第11节 Node.js 模块系统
  • WebRTC中sdp多媒体会话协议报文详细解读
  • 法律大语言模型(Legal LLM)技术架构
  • Selenium 中 JavaScript 点击操作的原理及应用
  • Nginx+Tomcat 负载均衡、动静分离