Java客户端调用elasticsearch进行深度分页查询 (search_after)
Java客户端调用elasticsearch进行深度分页查询 (search_after)
- 一. 代码
- 二. 测试结果
前言
这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。
作者:神的孩子都在歌唱
具体的Search_after解释,可以看我这篇文章 elasticsearch 深度分页查询 Search_after(图文教程)

一. 代码
public class Test {public static void main(String[] args) throws IOException {// 创建客户端final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();credentialsProvider.setCredentials(AuthScope.ANY,new UsernamePasswordCredentials("elastic", "chenyunzhi"));// 跳过ssl验证SSLFactory sslFactory = SSLFactory.builder().withUnsafeTrustMaterial().withUnsafeHostnameVerifier().build();RestClientBuilder builder = RestClient.builder(new HttpHost("192.168.1.47", 9200,"https")).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {@Overridepublic HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {return httpClientBuilder.setSSLContext(sslFactory.getSslContext()).setSSLHostnameVerifier(sslFactory.getHostnameVerifier()).setDefaultCredentialsProvider(credentialsProvider);}});// Create the transport with a Jackson mapperElasticsearchTransport transport = new RestClientTransport(builder.build(), new JacksonJsonpMapper());// 客户端连接ElasticsearchClient client = new ElasticsearchClient(transport);// 创建pitOpenPointInTimeRequest.Builder build = new OpenPointInTimeRequest.Builder();OpenPointInTimeRequest.Builder builder1 = build.index("test-000005").keepAlive(new Time.Builder().time("1m").build());OpenPointInTimeResponse openPointInTimeResponse = client.openPointInTime(builder1.build());String id = openPointInTimeResponse.id();// 构造查询条件SearchRequest.Builder sort = new SearchRequest.Builder().size(5).pit(p->p.id(id).keepAlive(k->k.time("1m"))).sort(s -> s.field(f -> f.field("name.keyword").order(SortOrder.Desc)));// 获取第一次查询的结果List<Hit<HashMap>> hits = client.search(sort.build(), HashMap.class).hits().hits();// 检查 hits 列表是否为空if (!hits.isEmpty()) {// 获取最后一个值的sortList<String> sort1 = hits.get(hits.size() - 1).sort();// 再次构造查询条件 加上searchAftersort = new SearchRequest.Builder().size(5).pit(p->p.id(id).keepAlive(k->k.time("1m"))).searchAfter(sort1).sort(s -> s.field(f -> f.field("name.keyword").order(SortOrder.Desc)));List<Hit<HashMap>> hits1 = client.search(sort.build(), HashMap.class).hits().hits();System.out.println("-------------------------第一次查询结果-------------------------");System.out.println(hits);System.out.println("-------------------------最后一个值的sort-------------------------");System.out.println(sort1);System.out.println("-------------------------第二次查询结果-------------------------");System.out.println(hits1);}// 关闭client.closePointInTime(c->c.id(id));transport.close();}
}
二. 测试结果

参考:https://blog.csdn.net/qq_44056652/article/details/126341810
作者:神的孩子都在歌唱
本人博客:https://blog.csdn.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接。
相关文章:
Java客户端调用elasticsearch进行深度分页查询 (search_after)
Java客户端调用elasticsearch进行深度分页查询 (search_after) 一. 代码二. 测试结果 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 具体的Search_after解…...
C#使用自定义的泛型节点类 Node<T>实现二叉树类BinaryTree<T>及其方法
目录 一、涉及到的知识点 1.Comparer.Default 属性 2.实现二叉树类BinaryTree步骤 (1)先设计一个泛型节点类 (2)再设计一个泛型的二叉树类 (3)最后设计Main方法 二、 使用泛型节点类 Node实现二叉树…...
美团2025春招第一次笔试题
第四题 题目描述 塔子哥拿到了一个大小为的数组,她希望删除一个区间后,使得剩余所有元素的乘积未尾至少有k个0。塔子哥想知道,一共有多少种不同的删除方案? 输入描述 第一行输入两个正整数 n,k 第二行输入n个正整数 a_i,代表…...
用游戏面试应聘者的方法
用游戏面试应聘者的方法 例如使用俄罗斯方块来面试,如果对方对这个游戏没有兴趣,或者是游戏结果不够好, 那么可以肯定的是,这个人做不好文物修复的工作。 象棋或者是围棋之类的棋类下得好的人,一般来说,做…...
C#,老鼠迷宫问题的回溯法求解(Rat in a Maze)算法与源代码
1 老鼠迷宫问题 迷宫中的老鼠,作为另一个可以使用回溯解决的示例问题。 迷宫以块的NN二进制矩阵给出,其中源块是最左上方的块,即迷宫[0][0],目标块是最右下方的块,即迷宫[N-1][N-1]。老鼠从源头开始,必须到达目的地。老鼠只能朝两个方向移动:向前和向下。 在迷宫矩阵…...
c语言: 输出几个数的和
输出几个数的和 任务描述 编程输入最少1个最多不超过4个整数,输出他们的和。 输入样例1:5 6 7 8 输出样例1:26 输入样例2:1 5 输出样例2:6 输入样例3:1 5 4 输出样例3:10 输入样例4ÿ…...
liteIDE 解决go root报错 go: cannot find GOROOT directory: c:\go
liteIDE环境配置 我使用的liteIDE为 x36 5.9.5版本 。在查看–>选项 中可以看到 LiteEnv,双击LiteEnv ,在右侧选择对应系统的env文件,我的是win64系统,所以文件名为win64.env 再双击 win64.env ,关闭当前窗口&…...
力扣_动态规划1—买卖股票的最佳时机
题目 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 方法—动态…...
苍穹外卖问题记录(持续更新)
Day01_3.2.4前后端联调 1. 前端无法登录 (1)确保nginx服务器已经启动 (2)查看自己数据库的用户名和密码是否和老师的一样,不一样的话需要在application-dev.yml文件中把老师的用户名密码修改成自己的 老师的用户名…...
结合大象机器人六轴协作机械臂myCobot 280 ,解决特定的自动化任务和挑战!(下)
Limo Pro 小车建图导航 引言 前景提要:我们在上文介绍了使用LIMO cobot 实现一个能够执行复杂任务的复合机器人系统的应用场景的项目,从以下三个方面:概念设计、系统架构以及关键组件。 本文主要深入项目内核的主要部分,同样也主要…...
加速 Webpack 构建:提升效率的秘诀
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
Qt自定义标题栏的多屏适配
标题栏自定义 参考博客 : https://blog.csdn.net/goforwardtostep/article/details/53494800 多屏适配 MyTitleBar类抽象定义了自定义标题栏,使用起来相对方便。但是在多屏情况下,窗口初次显示只能在主屏幕上,如果拖到其他屏幕…...
【MySQL篇】 MySQL基础学习
文章目录 前言基础数据类型DDL数据库操作查询数据库创建数据库删除数据库使用数据库 DDL表操作创建表查询表修改表删除 DML-增删改添加数据更改数据删除数据 DQL-查询基础查询条件查询聚合函数分组查询排序查询分页查询编写顺序 DML-用户及权限用户管理权限控制 函数字符串函数…...
Qt多弹窗实现包括QDialog、QWidget、QMainWindow
1.相关说明 独立Widget窗口、嵌入式Widget、嵌入式MainWindow窗口、独立MainWindow窗口等弹窗的实现 相关界面包含关系 2.相关界面 3.相关代码 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include "tformdoc.h" #incl…...
Django高级之-forms组件
Django高级之-forms组件 1 校验字段功能 针对一个实例:注册用户讲解。 模型:models.py class UserInfo(models.Model):namemodels.CharField(max_length32)pwdmodels.CharField(max_length32)emailmodels.EmailField()模版文件 <!DOCTYPE html&g…...
GPT实战系列-LangChain实现简单链
GPT实战系列-LangChain实现简单链 LangChain GPT实战系列-LangChain如何构建基通义千问的多工具链 GPT实战系列-构建多参数的自定义LangChain工具 GPT实战系列-通过Basetool构建自定义LangChain工具方法 GPT实战系列-一种构建LangChain自定义Tool工具的简单方法 GPT实战系…...
关于tomcat服务器配置及性能优化的20道高级面试题
1. 请描述Tomcat服务器的基本架构和组件。 Tomcat服务器的基本架构主要包括Server、Service、Connector和Container等组件。具体来看: Server:是Tomcat中最顶层的容器,代表着整个服务器。它负责运行Tomcat服务器,例如打开和关闭…...
LeetCode 1315.祖父节点值为偶数的节点和
给你一棵二叉树,请你返回满足以下条件的所有节点的值之和: 该节点的祖父节点的值为偶数。(一个节点的祖父节点是指该节点的父节点的父节点。) 如果不存在祖父节点值为偶数的节点,那么返回 0 。 示例: 输入…...
C语言分支和循环总结
文章目录 概要结构介绍不同结构的语句简单运用小结 概要 C语言中分为三种结构:顺序结构,选择结构,循环结构 结构介绍 顺序结构就是从上到下,从左到右等等;选择结构可以想象是Y字路口就是到了一个地方会有不同的道路…...
【Echarts】曲线图上方显示数字以及自定义值,标题和副标题居中,鼠标上显示信息以及自定义信息
欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《前端》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握…...
WeChatExporter:开源微信聊天记录备份与查看解决方案
WeChatExporter:开源微信聊天记录备份与查看解决方案 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 微信作为日常沟通的重要工具,承载着大量有价…...
PINCE未来路线图:即将推出的功能与开发计划
PINCE未来路线图:即将推出的功能与开发计划 【免费下载链接】PINCE Reverse engineering tool for linux games 项目地址: https://gitcode.com/gh_mirrors/pi/PINCE PINCE(PINCE is not Cheat Engine)是一款专注于Linux游戏逆向工程的…...
Matlab边缘检测实战:edge函数参数详解与算法对比
1. 边缘检测入门:为什么需要edge函数? 当你第一次看到一张模糊的照片时,最本能的反应是什么?大多数人会下意识地眯起眼睛——这个动作其实就是在强化边缘信息。在数字图像处理领域,边缘检测就是让计算机完成类似的&qu…...
别再只盯着输入了!用Delta Similarity分析查询更新,实战搭建你的黑盒攻击检测器
从Delta Similarity到实战防御:手把手构建黑盒攻击检测系统 在机器学习安全领域,黑盒对抗攻击始终是悬在开发者头顶的达摩克利斯之剑。传统防御方法如Blacklight和PIHA虽然能应对部分攻击,但面对自适应攻击策略时往往捉襟见肘。GWAD论文提出的…...
如何一键保存流媒体视频:N_m3u8DL-CLI-SimpleG的懒人式下载指南
如何一键保存流媒体视频:N_m3u8DL-CLI-SimpleG的懒人式下载指南 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 你是不是也遇到过这样的烦恼?看到喜欢的在…...
若依SpringCloud安全机制解析:从Token生成到权限验证的全流程
若依SpringCloud安全架构深度解析:从Token生成到权限验证的工程实践 在微服务架构中,安全机制的设计往往决定着整个系统的可靠性边界。若依(RuoYi)SpringCloud版本通过精巧的Token机制与分布式权限验证体系,为开发者提供了一套开箱即用的安全…...
4步打造微信聊天记录的数字保险箱:WeChatMsg全功能指南
4步打造微信聊天记录的数字保险箱:WeChatMsg全功能指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCh…...
推荐系统的DIN/DIEN:LLM如何理解用户行为序列
但要注意,一旦你是冲基础模型研发组、AGI研究组那种方向,那没论文确实很吃亏,甚至 HR 默认筛掉。现在大厂里的LLM职业方向,实际上已经分化得很厉害了。你得先分清楚你想去的是哪种。一种是“研究岗”或者叫“预模型训练岗”&#…...
如何使用FastAPI流式响应:从入门到精通的完整指南
如何使用FastAPI流式响应:从入门到精通的完整指南 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI是一个高性能、易…...
新手入门:5分钟搞懂雷达中的Dwell Time和Hits per Scan(附计算公式)
雷达系统核心参数解析:从Dwell Time到Hits per Scan的实战指南 雷达技术作为现代探测系统的基石,其性能优劣往往取决于几个关键参数的精确配置。对于刚接触雷达领域的技术人员来说,理解这些参数的实际意义和相互关系,就像掌握了一…...
