博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Elasticsearch Scroll分页检索案例分享
阅读量:6381 次
发布时间:2019-06-23

本文共 2015 字,大约阅读时间需要 6 分钟。

Elasticsearch Scroll分页检索案例分享
1.准备工作
参考文档《 》导入和配置es客户端bboss
2.定义scroll检索dsl
首先定义一个简单的scroll dsl检索脚本
3.Scroll检索代码
@Test	public void testScroll(){		ClientInterface clientUtil = ElasticSearchHelper.getConfigRestClientUtil("esmapper/scroll.xml");		//scroll分页检索,将检索结果映射为Map对象,也可以映射为自定义的实体对象		ESDatas response = clientUtil.searchList("agentstat-*/_search?scroll=1m",                              "scrollQuery",//对于dsl脚本名称,在esmapper/scroll.xml文件中配置                               Map.class);		List datas = response.getDatas();//第一页数据		List
scrollIds = new ArrayList<>();//用于记录每次scroll的scrollid,便于检索完毕后清除 long totalSize = response.getTotalSize();//总记录数 String scrollId = response.getScrollId(); if(scrollId != null) scrollIds.add(scrollId); System.out.println("totalSize:"+totalSize); System.out.println("scrollId:"+scrollId); if(datas != null && datas.size() > 0) {//每页1000条记录,通过迭代scrollid,遍历scroll分页结果 do { response = clientUtil.searchScroll("1m",scrollId,Map.class); scrollId = response.getScrollId();//每页的scrollid if(scrollId != null) scrollIds.add(scrollId); datas = response.getDatas();//每页的纪录数 if(datas == null || datas.size() == 0){ break; } } while (true); } //查询并打印存在于es服务器上的scroll上下文信息 String scrolls = clientUtil.executeHttp("_nodes/stats/indices/search", ClientUtil.HTTP_GET); System.out.println(scrolls); //清除scroll上下文信息,虽然说超过1分钟后,scrollid会自动失效,但是手动删除不用的scrollid,释放es资源是一个好习惯 if(scrollIds.size() > 0) { scrolls = clientUtil.deleteScrolls(scrollIds); System.out.println(scrolls); } //清理完毕后查看scroll上下文信息 scrolls = clientUtil.executeHttp("_nodes/stats/indices/search", ClientUtil.HTTP_GET); System.out.println(scrolls); }
4.Scroll案例项目地址和代码文件
项目地址:
scroll检索对应的代码和脚本文件:

转载地址:http://ychqa.baihongyu.com/

你可能感兴趣的文章
RxJava(RxAndroid)的简单学习
查看>>
Java8 函数式编程之函数接口(下)
查看>>
【本人秃顶程序员】MySQL 全表 COUNT(*) 简述
查看>>
centos7中使用febootstrap自制一个基础的centos 7.2的docker镜像
查看>>
C#开发Unity游戏教程之判断语句
查看>>
安装 SharePoint Server 2007
查看>>
springmvc mybatis 调用sql , 转成json
查看>>
linux centos 7 网卡突然不能上网异常解决
查看>>
授之以渔-运维平台发布模块一(Jenkins篇)
查看>>
DedeCMS操作基础(一)
查看>>
实现MySQL允许远程连接
查看>>
Java Outputstream to String
查看>>
RS232C串口通信接线方法(三线制)
查看>>
Android 自定义View属性相关细节
查看>>
type already defined error in Eclipse
查看>>
OSA 安装
查看>>
先安装.Framework然后再安装IIS,ASP.NET程序不能运行
查看>>
NPOI Excel下拉项生成设置
查看>>
360该不该拍?
查看>>
用Xib创建控制器
查看>>