gpt4 book ai didi

pagination - 发电机 : is there a way to get an arbitrary page without LastEvaluatedKey?

转载 作者:行者123 更新时间:2023-12-02 03:49:31 25 4
gpt4 key购买 nike

我有一个带有范围键 CreationDate 的 Message 表...

如何查询任意页面?这是否可能无需提供上一个查询返回的 LastEvaluatedKey?这意味着客户端还必须跟踪它并在每个请求中返回它。这不允许您在不进行每个中间查询的情况下跳转到任意页面。

我是否必须更新另一个仅包含 PageKey = someTimestamp 的表 MessagePageKeys 以实现快速页面检索?

        QueryRequest queryReq = new QueryRequest();

queryReq.WithTableName(tableName);
queryReq.WithLimit(perPage);

var startIndex = startPage * perPage;

queryReq.WithExclusiveStartKey(new Key
{
HashKeyElement = new AttributeValue().WithN(hashKeyValue),
RangeKeyElement = new AttributeValue().WithN(prevKey.ToString() )
});

// sort by newest (highest time signature)
queryReq.ScanIndexForward = false;

最佳答案

不,不使用“lastEvaluatedKey”是不可能的。

最后评估的 key 不一定存在,它只需要是一个有效的 key ,这可能对您有用。例如,如果您在同一哈希键下有以下范围键:

6
9
12
15

如果你想要范围键大于 10 的所有内容,你可以创建一个范围键 10 的独占 StartKey,然后你会返回

12
15

这与更有用的“页面边界”定义相结合(比如我想查看这一小时或这一分钟的每一项,等等)可能对您有用。我觉得数据消费者很少会知道“我的结果在第八页上,不管自从我上次查询该表以来其他数据发生了怎样的变化”。

关于pagination - 发电机 : is there a way to get an arbitrary page without LastEvaluatedKey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14995061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com