Google App EngineSearch API中的分页

时间:2014-02-04 06:40:52

标签: python google-app-engine

我想使用游标(不是偏移量)在谷歌应用引擎搜索API中进行分页。前进的分页是直截了当的,问题是如何实现落后的分页。

2 个答案:

答案 0 :(得分:5)

我猜你在使用游标向后翻页时运气不好。

  

Search API还支持使用查询游标。游标是另一种指示开始查询的点的方法,允许您从前一个结果集的末尾继续搜索。使用游标通常比使用偏移更有效。 但是,Search API当前不支持“反向游标”,数据存储API也是如此,这使得实现向后分页变得更加困难。因此,示例应用程序使用偏移而不是游标来对其查询结果进行分页。您可以在此处找到使用游标的示例。

source

答案 1 :(得分:1)

很抱歉重新回答这个老问题,但考虑到一些可能的解决方法的限制,我有一个针对此问题的解决方案。基本上,可以存储和重用以前页面的游标以重新访问该页面。

约束:

这要求分页是动态完成的(例如使用Javascript),以便旧游标不会丢失。解决方法如果在html页面中进行分页,则需要传递游标。

用户将无法任意选择转发页面,并且只会给出下一个/后退按钮。虽然任何以前访问过的页面都可以轻松跳转到。解决方法可能是在内部迭代并丢弃条目,同时在分页点生成游标,直到最终达到所需的结果。然后返回上一页游标列表。

所有这些都需要大量额外的簿记和复杂性,这几乎使解决方案纯粹是学术性的,但我认为这取决于游标的效率是多少,而不仅仅是限制/偏移。如果您的数据不希望您的用户希望一次超过一页(包括大多数类型的搜索),那么这可能是值得的。