ElasticSearch高级用法之滚动查询
由于es的限制,普通查询最多查询10000条数据,那么需要查询数据量大的情况怎么办呢?这个时候就可以使用滚动查询。代码如下:
//设置查询超时时间 Scroll scroll = new Scroll(TimeValue.timeValueMillis(5L)); //滚动查询 searchRequest.scroll(scroll); //记录要滚动的id String scrollId = searchResponse.getScrollId(); //滚动查询部分,将从第1001笔数据开始取 SearchHit[] hitsScroll = hits.getHits(); while (hitsScroll != null && hitsScroll.length > 0) { //构造滚动查询条件 SearchScrollRequest scrollRequest = new SearchScrollRequest(scrollId); scrollRequest.scroll(scroll); try { searchResponse = client.restHighLevelClient().scroll(scrollRequest, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); } scrollId = searchResponse.getScrollId(); System.out.println(scrollId); hits = searchResponse.getHits(); hitsScroll = hits.getHits(); //对结果进行操作 for (SearchHit hit : hits) { CntdDataDeliver cntdDataDeliver=JSON.parseObject(hit.getSourceAsString(), CntdDataDeliver.class); list.add(cntdDataDeliver); } } //清除滚动 ClearScrollRequest clearScrollRequest = new ClearScrollRequest(); clearScrollRequest.addScrollId(scrollId); try { client.restHighLevelClient().clearScroll(clearScrollRequest, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报