在客观化中创建Api方法的方法是什么,列出您所关注的人的所有最新帖子?
假设您有Profile
个实体编写Post
个实体。每个Post
都有一个Profile
作为其父级。每个Profile
都有一个跟随其他Profile
的密钥列表。
如何创建一个查询(带有游标),列出按日期降序排序的所有Post
个?{/ p>
为了能够做到这一点,我应该以不同于上面描述的模型构建我的模型吗?我认为我可以this方式做到这一点,但我从那篇文章中了解到,Objectify有一些局限性。其中一个原因是您无法在cursor
过滤器上使用IN
。文档here也说:
您可以过滤ID属性,如果此查询仅限于Class 并且实体没有@Parent。如果你在工作上遇到麻烦 围绕这个限制,请咨询objectify-appengine谷歌 基。
objectify-appengine google group不是很活跃......
答案 0 :(得分:2)
构建Feed有两种常规方法:Scatter-gather或preindex。他们每个都有自己的权衡。
Scatter-gather通常是最容易启动的,尤其是当你可以在数据库中进行连接时。并且它非常灵活 - 更改代码,每个人都能立即看到结果。但是,这种可扩展性受到严重限制,特别是如果您的用户通常会关注大量其他用户。正如您所注意到的那样,它是GAE中的PITA,因为没有连接(并且IN只允许您指定几十个项目)。确定在显示时向用户显示的内容是昂贵的。
Preindex(或" inbox")基本上说,选择在创建内容时看到一段内容的人,并将它们添加到索引中。好消息是显示速度很快(简单的索引步行)。坏消息是对跟进列表的更改不会自动追溯。不过,如果你想要可扩展性,这几乎是你唯一的选择。
Tumblr从散点图聚集切换到收件箱("仪表板索引"):http://highscalability.com/blog/2012/2/13/tumblr-architecture-15-billion-page-views-a-month-and-harder.html
在2009年的Google I / O谈话中,Brett Slatkin谈到如何在GAE上构建一个类似于收件箱的百万用户扇出:https://www.youtube.com/watch?v=AgaL6NGpkB8
旁注:Objectify google组相当安静,因为现在大多数问题都在stackoverflow上询问(无论好坏)。此外,您正在查看非常旧文档,以获取Objectify的过时版本。目前的文档在这里:https://github.com/objectify/objectify/wiki