glm*_*rml 7 google-app-engine cursor google-search-api app-engine-ndb
我在我的python appengine项目中使用了两个ndb和search-api查询.
关于游标的唯一正式文档,我可以找到:
以下事情对我来说不清楚:
我是从ndb视角回答,我没有使用搜索API.所有报价均来自您的第一个链接.
对于1和3(因为从游标角度来看,排序被视为原始查询的一部分):
要从光标点检索其他结果,应用程序使用相同的实体类型,过滤器和排序顺序准备类似的查询,并在执行检索之前将光标传递给查询的with_cursor()方法
因此,光标的年龄(即查询的年龄)并不重要,因为必须恢复其原始查询才能获得光标.
2:
游标和数据更新
光标的位置定义为返回最后一个结果后结果列表中的位置.光标不是列表中的相对位置(它不是偏移量); 它是开始索引扫描结果时Cloud Datastore可以跳转的标记.如果查询的结果在使用游标之间发生更改,则查询仅注意光标后结果中发生的更改.如果在查询的光标位置之前出现新结果,则在获取光标后的结果时将不会返回该结果.同样,如果实体不再是查询的结果但已出现在光标之前,则光标后面显示的结果不会更改.如果从结果集中删除了返回的最后一个结果,则光标仍然知道如何定位下一个结果.
检索查询结果时,可以同时使用开始游标和结束游标从Cloud Datastore返回连续的结果组.使用开始和结束光标检索结果时,无法保证结果的大小与生成游标时的大小相同.可以在生成游标的时间与在查询中使用游标之间的Cloud Datastore中添加或删除实体.
游标限制中的Java等效页面提到了一些可能因不一致而引发的错误:
新的App Engine版本可能会更改内部实现细节,使依赖于它们的游标无效.如果应用程序尝试使用不再有效的游标,则Cloud Datastore会引发
IllegalArgumentException(低级API),JDOFatalUserException(JDO)或PersistenceException(JPA).
我怀疑 Python也会引发一些类似的错误.
| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |