【Elasticsearh】-【Scroll】深分页Java代码示例【版本号:6.5.4】

本文展示了如何使用Java API在Elasticsearch中实现Scroll查询进行深分页。通过创建SearchRequest,设置Scroll超时时间,指定查询条件和数据返回数量,然后迭代 Scroll 响应,逐页获取并打印数据。最后演示了如何清除Scroll ID。
摘要由CSDN通过智能技术生成

import java.io.IOException;

import org.elasticsearch.action.search.ClearScrollRequest;
import org.elasticsearch.action.search.ClearScrollResponse;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchScrollRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortOrder;
import org.junit.Test;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.study.es.ESClient;

public class ScrollDemo {
    ObjectMapper mapper = new ObjectMapper();
    RestHighLevelClient c

对于vue-seamless-scroll插件而言,可以使用鼠标滚动来手动控制滚动。下面是一个示例代码,展示了如何使用vue-seamless-scroll插件来实现手动鼠标滚动: ```html <template> <div> <div id="scrollContainer"> <vue-seamless-scroll :list="list" :speed="speed" :item-class="itemClass" :direction="direction" :pause-on-hover="pauseOnHover"> <div v-for="(item, index) in list" :key="index" class="scroll-item">{{ item }}</div> </vue-seamless-scroll> </div> </div> </template> <script> import VueSeamlessScroll from 'vue-seamless-scroll' export default { name: 'ScrollDemo', components: { VueSeamlessScroll }, data() { return { list: ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5'], speed: 40, // 滚动速度 itemClass: '', // 单个滚动项的样式 class direction: 'vertical', // 滚动方向,可选值:'vertical'、'horizontal' pauseOnHover: true // 鼠标悬停时是否暂停滚动 } }, mounted() { this.initScroll() }, methods: { initScroll() { const scrollContainer = document.getElementById('scrollContainer') scrollContainer.addEventListener('mousewheel', this.handleMousewheel) }, handleMousewheel(event) { const delta = Math.max(-1, Math.min(1, (event.wheelDelta || -event.detail))) const scrollContainer = document.getElementById('scrollContainer') scrollContainer.scrollTop -= delta * this.speed event.preventDefault() } } } </script> <style> #scrollContainer { width: 300px; height: 200px; overflow: hidden; } .scroll-item { height: 50px; line-height: 50px; } </style> ``` 在这个示例代码,我们首先引入了vue-seamless-scroll组件,并注册为局部组件。然后,在`data`定义了滚动的配置项,包括滚动的列表数据、滚动速度、滚动项的样式类、滚动方向和鼠标悬停时是否暂停滚动等。在`mounted`钩子函数,调用`initScroll`方法来初始化滚动,将鼠标滚轮事件绑定到滚动容器。 在`handleMousewheel`方法,我们根据鼠标滚轮事件的`wheelDelta`或`detail`属性来获取滚动的方向和速度。然后,通过修改滚动容器的`scrollTop`属性来实现手动滚动。最后,调用`preventDefault`方法来阻止默认的滚动行为。 你可以根据实际需要调整代码的配置项和样式,以适应你的项目需求。 希望这个示例对你有帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值