是否可以跳过 Cassandra SELECT 语句中的 'x' 结果? |分页

Is it possible to skip 'x' results in Cassandra SELECT statement? | PAGINATION

我想为我的应用程序实现一个简单的分页,它使用最新的 Cassandra。我找了 3 天,但找不到任何有用的东西(既不在 DS 文档中,也不使用 Google)。

长话短说 - 是否可以在制作 SELECT 语句时跳过 'x' 结果?我不想这样做 after SELECT return 我想要一个 SELECT 声明到 return 仅由 skipsize 结果定义。

在 Cassandra 中可以吗?我看到了这个: https://docs.datastax.com/en/archived/cql/3.1/cql/cql_reference/select_r.html#reference_ds_d35_v2q_xj__paging-through-unordered-results

并阅读了迭代器,但它看起来不像我要找的东西(迭代器似乎迭代已经从数据库中获取的结果;上面link 看起来像某种 intable 分页(这是某种解决方法))。

没有内置的“跳过”功能,只有允许您限制返回行数的限制。但是 Cassandra 支持所谓的分页状态,它允许您从“最后获取的位置”开始显示结果(请参阅 Cassandra's native protocol specification 了解技术细节(第 8 节))。但这将允许你只实现“前向分页”,对于后向分页你需要记住你已经停止的地方(只是缓存分页状态,或者“记住”完整的主键)

一些驱动程序(或全部,不记得了)正在通过 API 公开该分页状态,因此您可以将其放入 cookie 中,或存储在其他地方(例如,请参阅 doc for Java driver). Java driver, also provides OffsetPager class,模拟分页和随机访问数据,但在幕后它只是跳过不必要的结果,所以要注意性能影响。