2012-05-16 19 views
4

只是好奇在AppEngine上为'百万追随者'twitter风格的扇出问题推荐的最佳做法是什么。GAE搜索API - 对Twitter风格扇出有用吗?

它仍然是Brett Slatkin提出的解决方案(请参阅:http://www.scribd.com/doc/16952419/Building-scalable-complex-apps-on-App-Engine)?

或者新的搜索API可以在这里使用吗?您可以使用大量作者过滤器进行搜索吗? '作者:bob或者作者:alice或者作者:mike ...'ad nauseum?还是有搜索API查询复杂性的限制?或者这会是明智的表现吗?如果可以遵循的人数有限制,这可能是一个合理的解决方案吗?

感谢您的任何反馈!

回答

3

一般来说,'或'查询在任何数据库中都不高效,包括搜索API - 它们都需要执行多个独立查询,并将结果粘合在一起。

扇出问题可以通过prospective search API更好地处理。

+0

嗨,尼克,感谢您的答复。在propsective search中的查询是否也包含很多'OR' 'author:mike OR author:jane'等。假设我需要检查用户正在关注的几百名作者...是否有效地将每个文档与许多不同的查询进行匹配,其中每个用户的查询清单?可能有成千上万的用户,每个用户可能有数百个用户在他们的下面的列表中。或者我是以错误的方式思考它?再次感谢您的帮助... – peterk

+0

@peterk预期搜索将操作反转,并将通知发送给每个关注某人的帐户,当他们发布新更新时。 –

+0

阅读我认为潜在的搜索可以解决'谁订阅了这个评论'的问题,但之后高效地检索一个订阅源的问题是一个开放的问题(例如,在频道上发射匹配并且忘记它们)。也许只是在数据存储实体中存储批次匹配,并查询match_list = user的实体? 订阅查询的时间有多长?如果一个用户的订阅跟随数百或数千人,它可能是一个很长的'ORs'列表... ...再次感谢您:) – peterk