跳到主要内容

分页 ​

GraphQueryExecutor.executePage 提供统一分页协议。

java
GraphPageResult first = graph.query().executePage(
    query, GraphPageRequest.of(0, 20), options);

if (first.hasNext()) {
    GraphPageResult next = graph.query().executePage(
        query, GraphPageRequest.after(first.getNextCursor(), 20), options);
}

分页规则 ​

  • limit 必须为正数且不能超过 SDK 上限;
  • 第一页使用 offset;
  • 后续页使用 opaque cursor;
  • 调用方不应解析或拼接 cursor;
  • 应使用稳定排序保证页之间顺序一致;
  • 分页结果只包含当前页,look-ahead 记录不会泄漏。

默认实现使用 offset cursor。适配器可以覆写为后端原生 keyset cursor;不支持的 cursor 会明确失败。

数据变化 ​

offset 分页在并发插入、删除时可能出现重复或跳过。强一致导出应使用数据库快照、稳定版本条件或专属 keyset 分页,而不是仅依赖 offset。