spring data elasticsearch如何使用offset和limit进行查询

2024-03-12

spring data elasticsearch如何使用offset和limit进行查询。我想使用偏移量和限制参数来查询页面。但我找不到方法支持。例如:

    queryBuild.withPageable(PageRequest.of(pageIndex, pageSize));
    Page<Content> content = elasticsearchOperations.queryForPage(queryBuild.build(),Content.class);

可能没问题

但我找不到带有偏移和限制的方法

    queryBuild.withPageable(PageRequest.of(offset, limit));

我有同样的问题,所以我实现了以下课程

import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

public class OffsetLimitPageable implements Pageable {

    private int offset;
    private int page;
    private int size;
    private Sort sort = Sort.unsorted();

    protected OffsetLimitPageable(int offset, int page, int size) {
        if (offset < 0) {
            throw new IllegalArgumentException("Offset must not be less than zero!");
        }

        if (page < 0) {
            throw new IllegalArgumentException("Page index must not be less than zero!");
        }

        if (size < 1) {
            throw new IllegalArgumentException("Page size must not be less than one!");
        }

        this.offset = offset;
        this.page = page;
        this.size = size;
    }

    public static OffsetLimitPageable of(int offset, int page, int size) {
        return new OffsetLimitPageable(offset, page, size);
    }

    /*
     * (non-Javadoc)
     * @see org.springframework.data.domain.Pageable#getPageNumber()
     */
    @Override
    public int getPageNumber() {
        return page;
    }

    /*
     * (non-Javadoc)
     * @see org.springframework.data.domain.Pageable#getPageSize()
     */
    @Override
    public int getPageSize() {
        return size;
    }

    /*
     * (non-Javadoc)
     * @see org.springframework.data.domain.Pageable#getOffset()
     */
    @Override
    public long getOffset() {
        return offset + page * size;
    }

    /*
     * (non-Javadoc)
     * @see org.springframework.data.domain.Pageable#getSort()
     */
    @Override
    public Sort getSort() {
        return sort;
    }

    /*
     * (non-Javadoc)
     * @see org.springframework.data.domain.Pageable#next()
     */
    public Pageable next() {
        return of(offset, page + 1, size);
    }

    /*
     * (non-Javadoc)
     * @see org.springframework.data.domain.Pageable#previousOrFirst()
     */
    public Pageable previousOrFirst() {
        return hasPrevious() ? of(offset, page - 1, size) : first();
    }

    /*
     * (non-Javadoc)
     * @see org.springframework.data.domain.Pageable#first()
     */
    public Pageable first() {
        return of(offset, 0, size);
    }

    /*
     * (non-Javadoc)
     * @see org.springframework.data.domain.Pageable#hasPrevious()
     */
    public boolean hasPrevious() {
        return page > 0;
    }
}

并且,像这样使用

queryBuild.withPageable(OffsetLimitPageable.of(offset, page, limit));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring data elasticsearch如何使用offset和limit进行查询 的相关文章

随机推荐

  • 使用或不使用 C++0x 功能 [重复]

    这个问题在这里已经有答案了 可能的重复 您今天使用 C 0x 的情况如何 https stackoverflow com questions 1754397 how are you using c0x today 我正在与一个团队合作开发一
  • Websocket Java 服务器。不发送消息也不接收消息

    我正在尝试制作一个 Java WebSocket 服务器 没有什么真正复杂的 只是一个丑陋的小服务器 用于使用标准定义的 api 从浏览器尝试 websocket 我一直在阅读协议的规范 它非常简单 我已经握手了 显然它正在起作用 我用Ja
  • 附加分配给特定分区的 KafaConsumer

    如何将 python 消费者脚本附加到特定的 kafka 分区 在运行消费者脚本的两个实例 如下所示 时 每个实例都会随机选择一个分区 然后按预期消费 打印该特定分区的所有消息 但由于我需要将这些消息输出到磁盘上名为本地文件的分区 因此将脚
  • 用于存储数百万张图像的文件夹结构?

    我正在构建一个网站 该网站正在查看轻松上传的数百万张照片 每个上传的图像都有 3 个缩略图 我需要找到存储所有这些图像的最佳方法 我搜索并找到了存储为哈希的图像示例 例如 如果我上传 coolparty jpg 我的脚本会将其转换为 Md5
  • 数据仓库模型:集线器有什么用?

    我刚刚读到数据仓库建模 https en wikipedia org wiki Data vault modeling据我了解 集线器仅包含密钥 和记录源 所以我想知道为什么我应该创建这些中心表 只是为了存储记录源 仅拥有卫星和链接还不够吗
  • NSValueTranformer 用于加密数据

    我想在 NSValueTransformer 的帮助下加密一些核心数据列 我的想法是 我使用数据类型可转换并为我的数据类型定义一些转换器 在转换方法中 我想加密 解密该值 我定义了一个实际上什么都不做的变压器 加密的东西目前还没有实现 im
  • ReportViewer 到 div/image/object 内的 PDF

    这几天一直在寻找 但没能找到我要找的东西 希望我没有错过 我有一个 ASP NET 4 0 站点 我正在将其放在一起以检索工资信息 目前我正在使用reportviewer 但由于跨浏览器支持 它不能100 工作 我已经将其设置为自动将 RV
  • Symfony2 形成没有实体的验证器组

    我正在使用 Symfony2 表单组件来构建和验证表单 现在我需要根据单个字段值设置验证器组 不幸的是 似乎每个示例都基于实体 由于多种原因 我没有使用实体 例子 如果任务为空 则应删除所有约束验证器 但如果不是 则应使用默认的验证器集 或
  • 使用 spring RestTemplate 来自 Android 的 PUT 请求

    我必须通过 Restful 服务 Net 将客户对象从 Android 客户端放入数据库 服务合同 WebInvoke Method PUT UriTemplate customers customerId RequestFormat We
  • 我可以将同一个 Firebase 用于两个不同的应用吗?

    我想为两个应用程序使用相同的 Firebase 在这两个应用程序中 用户应该能够通过 Google Facebook 或电子邮件登录 但在我的 Firebase 仪表板的 登录和身份验证 部分中 我只能添加一个 Facebook 应用程序
  • 用不同的方式从列表中删除重复项

    我有一个名为employee的类 它是pojo 并且我创建了该pojo类型的employee类型的列表 现在我想从列表中删除重复项 请告知实现这一目标的各种方法是什么 class Emp implements Comparable Stri
  • 无法在经典 asp 中写入文件

    好吧 自从我使用经典的 asp 以来已经有一段时间了 所以我有点生疏了 这是我的问题 我正在尝试使用 FSO 将文件写入文件系统 下面的代码非常简单 但是 该文件没有出现 也没有出现错误 我知道它正在运行代码 因为我可以在此片段之前和之后添
  • 无法打开源文件:“WIN32”:没有这样的文件或目录

    在 VS2008 中构建 C 项目时出现此错误 很困惑这是什么意思 为什么它认为WIN32是一个文件 Go to Project gt 特性 gt C C gt 命令行 你很可能有一个 I 在你之前 D WIN32 由于某种原因 空的 in
  • 在 Typescript 上获取插件函数

    我正在尝试在打字稿文件上使用一些科尔多瓦插件功能 但我无法构建该文件 想象一下 我想要访问设备平台和型号 有人可以帮我弄这个吗 我应该为插件的 js 文件上的每个函数创建接口吗 提前致谢 对此已有定义 https github com bo
  • 在 Dart 中克​​隆列表、映射或集

    来自 Java 背景 克隆 Dart 的推荐方法是什么List Map and Set Use of clone in Java is tricky and questionable1 2 Effectively clone is a co
  • 检测多列中的关键词并在新列中标记它们

    我有这种类型的数据 set seed 123 df lt data frame v1 sample LETTERS 1 10 5 v2 sample LETTERS 1 10 5 v3 sample LETTERS 1 10 5 v4 sa
  • Vite 构建命令挂在“模块已转换”处。在Vue 3.3.4、Vite 4.3.8环境下

    您好 我目前正在使用 Vue 3 3 4 Vuetify 3 2 5 和 Vite 4 3 8 开发一个项目 当我运行 vite build 命令时 该过程似乎挂起并且未完成 最后的输出我看到的是 679 modules transform
  • 应该如何将 F# SqlDataConnection TypeProvider 与 App.Config 文件一起使用?

    我正在使用类型表达式 type dbSchema SqlDataConnection
  • 我可以定位 .net 的(表单)消息框或通用对话框吗?

    我试图获得父窗体的中心 而不是屏幕行为的中心 传入父窗体似乎只能控制窗口的所有权 这些类是密封的 因此我不知道如何执行任何 WinProc 技巧 重写类并不是一个有吸引力的选择 还有其他想法吗 正如 HTH 上面所解释的 有一些丑陋的方法可
  • spring data elasticsearch如何使用offset和limit进行查询

    spring data elasticsearch如何使用offset和limit进行查询 我想使用偏移量和限制参数来查询页面 但我找不到方法支持 例如 queryBuild withPageable PageRequest of page