我需要在maxcount为10的jsp上显示搜索结果,并且它应该有一个分页来作为分页功能来回追溯和转发。
Dynamodb有 lastevaluatedkey ,但返回上一页无效,但我可以转到 lastevaluatedKey 的下一个结果集。< / p>
任何人都可以帮忙解决这个问题。
我使用Java SPRING和DynamoDB作为堆栈。
由于 萨蒂亚
答案 0 :(得分:4)
您可以使用lastEvaluatedKey
结合向后扫描方向来&#34;向后移动&#34;并获得最后一页。
答案 1 :(得分:1)
您必须在会话var,查询字符串或稍后可以访问的类似内容中保留先前密钥的记录,然后在您想要后退时使用该密钥执行查询。迪纳摩不会为您追踪。
答案 2 :(得分:0)
要启用前进/后退,您只需要保留
the first key
,它是先前返回页面的第一条记录的hash key + sort key
(如果您要查询第一页,则为null)。
和
检索到的页面的 the last key
,即先前返回页面的最后一条记录的hash key + sort key
然后要向前或向后导航,您需要在查询请求中传递以下参数:
Forward: last key as the ExclusiveStartKey, order = ascend
Backward: first key as the ExclusiveStartKey, order = descend
我在2016年的一个项目中实现了这一点.DynamoDB现在可能会提供一些类似的方便的API,但我不确定,因为我很长时间没有检查过DynamoDB。
答案 3 :(得分:0)
要使用dynamodb进行简单的无状态正向和反向导航,请查看我对类似问题https://stackoverflow.com/a/64179187/93451的回答。
总而言之,它会在每个响应中返回反向导航历史记录,从而使用户可以明确地向前或向后移动直到任一端。
GET /accounts -> first page
GET /accounts?next=A3r0ijKJ8 -> next page
GET /accounts?prev=R4tY69kUI -> previous page