- 浏览: 667687 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
Elasticsearch search after分页检索案例分享
The best elasticsearch highlevel java rest api-----bboss
1.准备工作
参考文档《高性能elasticsearch ORM开发库使用介绍》导入和配置es客户端
2.编写创建索引表和初始化数据方法
创建索引表和初始化数据的组件DocumentCRUD 实现本文不做重点介绍,请访问视频教程了解:
3.定义searchAfter dsl配置文件
新建配置文件-esmapper/searchafter.xml
定义searchAfterDSL
4.定义实现searchAfter的代码
5.通过junit单元测试用例运行案例
6.参考文档
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-search-after.html
案例对应源码工程:
https://gitee.com/bboss/eshelloword
elasticsearch技术交流群:166471282
elasticsearch微信公众号:
The best elasticsearch highlevel java rest api-----bboss
1.准备工作
参考文档《高性能elasticsearch ORM开发库使用介绍》导入和配置es客户端
2.编写创建索引表和初始化数据方法
创建索引表和初始化数据的组件DocumentCRUD 实现本文不做重点介绍,请访问视频教程了解:
/** * 创建索引表并导入测试数据 */ public void initIndiceAndData(){ DocumentCRUD documentCRUD = new DocumentCRUD(); documentCRUD.testCreateIndice();//创建索引表 documentCRUD.testBulkAddDocuments();//导入测试数据 }
3.定义searchAfter dsl配置文件
新建配置文件-esmapper/searchafter.xml
定义searchAfterDSL
<properties> <property name="searchAfterDSL"> <![CDATA[{ #* 以demoId,_uid为searchAfter的分页条件 _uid值格式type#_id 由索引类型加#号加id拼接而成 如果按照多个字段的值做searchAter分页,则用逗号分隔每个值 *# #if($searchAfterId) ## 第一次检索的时候,没有searchAfterId变量,只有做翻页操作的时候才会传递代表分页起点的searchAfterId变量进来 "search_after": [#[demoId],"demo#[searchAfterId,quoted=false,lpad=#]"], #end "size": $pageSize, ##searchAfter分页每页最多显示的记录条数 #* searchAfter分页检索时,必须用翻页字段作为排序字段,这里是demoId和_uid两个字段,如果是多个字段,则按照searchAfter的顺序来设置对应的排序属性 *# "sort": [ {"demoId": "asc"}, {"_uid": "asc"} ], ## 其他检索条件,按照时间范围查询数据,所有数据按照上面的searchAter机制进行分页 "query": { "bool": { "filter": [ { "range": { "agentStarttime": { "gte": #[startTime], "lt": #[endTime] } } } ] } } }]]> </property> </properties>
4.定义实现searchAfter的代码
public void doSeachAfter() throws ParseException { //创建加载配置文件的客户端工具,用来检索文档,单实例多线程安全 ClientInterface clientUtil = ElasticSearchHelper.getConfigRestClientUtil("esmapper/searchafter.xml"); Map params = new HashedMap();//定义检索条件,将dsl中需要的参数放置到params中 params.put("pageSize",100); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); params.put("startTime",dateFormat.parse("2017-09-02 00:00:00").getTime()); params.put("endTime",new Date().getTime()); //执行查询,demo为索引表,_search为检索操作action ESDatas<Demo> esDatas = //ESDatas包含当前检索的记录集合,最多1000条记录,由dsl中的size属性指定 clientUtil.searchList("demo/_search",//demo为索引表,_search为检索操作action "searchAfterDSL",//esmapper/demo.xml中定义的dsl语句 params,//变量参数 Demo.class);//返回的文档封装对象类型 //获取结果对象列表,最多返回1000条记录 List<Demo> demos = esDatas.getDatas(); //获取总记录数 long totalSize = esDatas.getTotalSize(); do{ if(demos != null) System.out.println("返回当前页记录数:"+demos.size()); if(demos != null && demos.size() == 100) { //还有数据,则通过searchAfter继续获取下一页数据 String searchAfterId = (String) demos.get(99).getId();//获取最后一条记录的_id值 params.put("searchAfterId", searchAfterId);//设置searchAfterId为分页起点_id值 long demoId = demos.get(99).getDemoId();//获取最后一条记录的demoId值 params.put("demoId", demoId);//设置searchAfterId为分页起点demoId值 esDatas = //ESDatas包含当前检索的记录集合,最多1000条记录,由dsl中的size属性指定 clientUtil.searchList("demo/_search",//demo为索引表,_search为检索操作action "searchAfterDSL",//esmapper/demo.xml中定义的dsl语句 params,//变量参数 Demo.class);//返回的文档封装对象类型 demos = esDatas.getDatas(); } else{//如果是最后一页,没有数据返回或者获取的记录条数少于100结束分页操作 break; } }while(true); System.out.println("总记录数:"+totalSize); }
5.通过junit单元测试用例运行案例
@Test public void testSeachAfter() throws ParseException { DocumentSearchAfter documentSearchAfter = new DocumentSearchAfter(); documentSearchAfter.initIndiceAndData();//创建索引表并导入searchAfter分页测试数据 documentSearchAfter.doSeachAfter();//执行searchAfter分页操作 }
6.参考文档
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-search-after.html
案例对应源码工程:
https://gitee.com/bboss/eshelloword
elasticsearch技术交流群:166471282
elasticsearch微信公众号:
发表评论
-
一组获取Elasticsearch 索引表所有文档API使用案例
2018-11-18 16:02 3001The best elasticsearch highle ... -
Elasticsearch Scroll和Slice Scroll查询API使用案例
2018-09-16 18:49 3827Elasticsearch Scroll和Slice Scro ... -
数据库数据导入Elasticsearch案例分享
2018-09-16 18:42 6246The best elasticsearch highleve ... -
Spring Boot整合ElasticSearch单/多集群案例
2018-07-07 20:12 9761Spring Boot整合ElasticSearch单个集群和 ... -
ElasticSearch DSL Script使用案例分享
2018-06-28 23:52 6166the best elasticsearch highleve ... -
Elasticsearch 6.3.0 SQL功能使用案例分享
2018-06-25 19:12 3270The best elasticsearch highleve ... -
数据库数据导入Elasticsearch案例分享
2018-06-21 22:56 433The best elasticsearch highleve ... -
ElasticSearch From-Size分页案例
2018-06-14 00:17 3375ElasticSearch From-Size分页案例 1. ... -
ElasticSearch客户端注解使用介绍
2018-05-30 00:19 2361The best elasticsearch highleve ... -
基于自定义配置文件初始化ElasticSearch客户端方法介绍
2018-05-24 18:56 1479基于自定义配置文件初始化ElasticSearch客户端方法介 ... -
Elasticsearch关键词高亮检索案例分享
2018-05-10 22:18 62091.准备工作 参考文档《集成Elasticsearch Res ... -
判断ElasticSearch索引Indice和索引类型是否存在
2018-05-05 23:54 8488The best elasticsearch highleve ... -
快速集成Elasticsearch Restful API案例
2018-04-26 14:27 3163The best elasticsearch highleve ... -
Elasticsearch source filter检索案例
2018-04-24 13:00 2212摘要: the best elasticsearch high ... -
Elasticsearch Delete/UpdateByQuery案例
2018-04-16 11:09 7311Elasticsearch Delete/UpdateByQu ... -
Elasticsearch返回父子数据关联查询案例
2018-04-13 12:36 4665在《Elasticsearch 父子关 ... -
Elasticsearch Sliced Scroll分页检索案例分享
2018-04-02 18:28 3733Elasticsearch Sliced Scroll分页检索 ... -
Elasticsearch地理位置维护及检索案例分享
2018-03-31 21:36 1682Elasticsearch地理位置信息维护及检索案例分享 1 ... -
Elasticsearch Scroll分页检索案例分享
2018-03-28 20:40 4052Elasticsearch Scroll分页检索案例分享 1 ... -
Elasticsearch Mget、GetDocSource、索引部分更新案例分享
2018-03-25 08:55 12131.前期准备 参考文档《高性能elasticsearch OR ...
相关推荐
方法如果传总页数了,es就不用查询总页数,直接通过开始位置到结束位置取数即可
Elasticsearch in Action 全文检索Elasticsearch in Action 全文检索Elasticsearch in Action 全文检索Elasticsearch in Action 全文检索Elasticsearch in Action 全文检索Elasticsearch in Action 全文检索
Spring Boot结合Jest实现对ElasticSearch的全文检索,分词检索,分页,搜索结果高亮关键词,多字段检索 PageController中的搜索方法里面是全套的,分词,分页,高亮等都包含,数据格式个es-head中创建索引的索引在...
基于ElasticSearch的海量文本检索系统 基于ElasticSearch的海量文本检索系统,目前支持txt, doc, docx, pdf, ppt格式文本上传及全文查询,本项目作为本人的毕业设计
好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个开源的高拓展的分布式全文搜索引擎它可以近乎实时的存储、检索数据;本身拓展性很好,可以拓展到上百台服务器,处理PB级别的数据。es也是用Java开发并使用...
十分钟学会使用 Elasticsearch 优雅搭建自己的搜索系统。 什么是elasticsearch Elasticsearch 是一个开源的高度可扩展的全文搜索和分析引擎,拥有查询近实时的超强性能。 大名鼎鼎的Lucene 搜索引擎被广泛用于搜索...
es 提供了3种方式来解决分页与遍历的问题: – from/size – scroll – search_afterForm/Size 最常见的分页方案 – from指明开始位置 – size 指明获取总数 scroll 遍历文档集的 api,以快照的方式来避免深度分页的...
elasticsearch elasticsearch-6.2.2 elasticsearch-6.2.2.zip 下载
ElasticSearch实战 in Action(原著原版)压缩包,ElasticSearch文档,ES全文检索从入门到精通,高清PDF,是学习es和精通es必备手册,能快速达到精通ElasticSearch,一册在手,ElasticSearch无忧,开发、学习、调优...
ElasticSearch和activiti案例ElasticSearch和activiti案例ElasticSearch和activiti案例ElasticSearch和activiti案例
java 集成elasticsearch分页查询,不用更改elasticsearch配置支持分页查询并且全数据查询出来
java连接elasticsearch实现全文检索,并且高亮显示结果,实现分页。项目基于elasticsearch5.6.1可根据自己实际情况调整版本。最近项目需要所以学习了一下,项目很简单可以根据你的实际情况更改接口。我本地的搜索是...
针对elasticsearch的一些研究,我选用的版本是6.12 ,内容包括客户端创建,Mapping分词创建(我这里用的是IK6.12版本),索引创建,条件检索,等,研究中发现,elasticsearch插件必须配套,选用一个版本,如果不同...
elasticsearch-7.17.6及对应版本IK分词 适合人群:elasticsearch初学者 Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elastic...
Elasticsearch全文检索,springboot整合ES,包括创建索引,根据id查询,关键字查询,删除索引等基本操作。
本科毕业设计+优秀课程设计+大作业+基于Springboot+ElasticSearch构建的博客检索系统(源码+说明设计文档) 本科毕业设计+优秀课程设计+大作业+基于Springboot+ElasticSearch构建的博客检索系统(源码+说明设计文档...
使用ElasticSearch实现全文检索是一种常见且高效的方式。下面是详细的技术实践和说明: 安装和配置ElasticSearch: 首先,需要在服务器上安装ElasticSearch,并确保其正常运行。 然后,进行相关配置,如集群名称、...
基于Springboot + ElasticSearch +Vue+MySQL构建的博客检索系统 项目经过严格测试,确保可以运行! 简易博客检索系统使用前后端分离,前端使用 Vue ,后端使用 SpringBoot 数据库 MySQL 检索使用 ElasticSearch ...
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索...
elasticsearch-8.2.3 windows 版本。 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的...