所以,我需要从朋友那里得到最新的照片。我尝试从我的代码以及http://developers.facebook.com/tools/explorer
的FQL资源管理器中运行一些查询以下查询永远不会返回。
SELECT src_big,created,owner FROM photo WHERE owner in(从朋友那里选择uid2,其中uid1 = me())按创建的desc命令
在所有者上使用WHERE子句可能不是一个好主意,即使FQL文档确实说所有者已编入索引。所以,我把它修改为:
SELECT src_big,created,owner FROM photo WHERE help in(选择来自所有者的相册的帮助(从朋友那里选择uid2 = uid1 = me()))按创建的desc limit 2000命令
但确实会返回,但只返回我朋友中的3张照片,总照片数量远不及2000。
我尝试将结果限制为仅过去7天内创建的照片。
SELECT src_big,created,owner FROM photo WHERE help in(选择来自所有者的专辑的帮助(从朋友那里选择uid2,其中uid1 = me()))并创建> 1361570941按创建的desc limit 2000命令
现在我只收到1张照片(显然是1位照片)。
然后我尝试了最后365天。
SELECT src_big,created,owner FROM photo WHERE help in(选择来自所有者的专辑的帮助(从朋友那里选择uid2,其中uid1 = me()))并创建> 1330639808按创建的desc limit 2000命令
现在我有更多的照片,但仍然没有2000,而且只有这三个所有者。
如果我现在遍历我的每个朋友并运行此查询:
SELECT src_big,created,owner FROM photo WHERE owner = and created> 1330639808按创建的desc限制订单100
然后我得到了正确的结果,最终当我和所有朋友一起完成时,我有来自202位朋友的照片,如果我按照创建的方式对整体结果进行排序,那么前面提到的3个所有者并不会占据最高行。有许多业主在前2000个点发布了照片,因此之前的查询显然返回了不正确(不完整)的数据。
但是,与之前的查询相比,最后一种方式(循环播放所有朋友)的性能非常糟糕 - 我们谈的是几分钟而不是几秒钟。
这是一个已知的问题或限制吗?任何解决方法?
答案 0 :(得分:0)
我的Facebook员工朋友建议使用多个查询,如下所示:
{ “p1”:“SELECT src_big,created,owner FROM photo WHERE owner = 4850 AND created> 1341203410”, “p2”:“SELECT src_big,created,owner FROM photo WHERE owner = 5569 AND created> 1341203410” }
我还没有尝试过,但我猜它会比每个朋友进行API调用快得多。
他说他会对原始查询的错误结果提出错误。