如何使用ElasticsearchTemplate执行滚动查询
这篇文章主要讲解了“如何使用ElasticsearchTemplate执行滚动查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用ElasticsearchTemplate执行滚动查询”吧!
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、做网站、金凤网络推广、小程序制作、金凤网络营销、金凤企业策划、金凤品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供金凤建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
使用Elasticsearch查询大量数据时基本的分页查询就会报错,这种情况下可以使用scroll(滚动)查询
直接上代码:
// 创建查询条件对象 BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery(); // 拼接查询条件 queryBuilder.must(QueryBuilders.termQuery("status", 1)); 假设查询状态为1的 // 创建查询对象 SearchQuery searchQuery = new NativeSearchQueryBuilder() .withIndices("test_index")//索引名 .withTypes("test")//类型名 .withQuery(queryBuilder)// 查询条件对象 .withPageable(PageRequest.of(0, 1000))//从0页开始查,每页1000个结果 .build(); // 滚动查询 ScrolledPagescroll = (ScrolledPage ) elasticsearchTemplate.startScroll(3000, searchQuery, TestEntity.class); // 判断是否有内容 while (scroll.hasContent()) { List content = scroll.getContent(); // 业务逻辑省略 //取下一页,scrollId在es服务器上可能会发生变化,需要用最新的。发起continueScroll请求会重新刷新快照保留时间 scroll = (ScrolledPage ) elasticsearchTemplate.continueScroll(scroll.getScrollId(), 3000, EstateInfoEntity.class); } // 最后释放查询 elasticsearchTemplate.clearScroll(scroll.getScrollId());
感谢各位的阅读,以上就是“如何使用ElasticsearchTemplate执行滚动查询”的内容了,经过本文的学习后,相信大家对如何使用ElasticsearchTemplate执行滚动查询这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
文章名称:如何使用ElasticsearchTemplate执行滚动查询
路径分享:http://scyanting.com/article/gohigh.html