【问题标题】:Incorrect/incomplete results from FQLFQL 的结果不正确/不完整
【发布时间】:2013-02-16 13:25:31
【问题描述】:

所以,我需要从朋友那里获取最近的照片。我尝试从我的代码以及 http://developers.facebook.com/tools/explorer 的 FQL 资源管理器中运行一些查询

以下查询永远不会返回。

SELECT src_big, created, owner FROM photo WHERE owner in (select uid2 from friend where uid1=me()) order by created desc

对所有者使用 WHERE 子句可能不是一个好主意,即使 FQL 文档确实说所有者已编入索引。所以,我修改为:

SELECT src_big, created, owner FROM photo WHERE aid in (select aid from album where owner in (select uid2 from friend where uid1=me())) order by created desc limit 2000

确实返回了,但只返回了我 3 个朋友的照片,总照片数远未接近 2000。

我尝试将结果限制为仅显示过去 7 天内创建的照片。

SELECT src_big, created, owner FROM photo WHERE aid in (select aid from album where owner in (select uid2 from friend where uid1=me())) and created > 1361570941 order by created desc limit 2000

现在我只得到 1 张照片(显然来自 1 个所有者)。

然后我尝试了过去 365 天。

SELECT src_big, created, owner FROM photo WHERE aid in (select aid from album where owner in (select uid2 from friend where uid1=me())) and created > 1330639808 order by created desc limit 2000

现在我得到了更多照片,但仍然没有 2000 张,而且只有这 3 个所有者的照片。

如果我现在遍历我的每个朋友并运行这个查询:

SELECT src_big, created, owner FROM photo WHERE owner = and created > 1330639808 order by created desc limit 100

然后我得到了正确的结果,最终当我与所有朋友一起完成时,我有 202 个朋友的照片,如果我按创建对整体结果进行排序,上述 3 个所有者不会占据前几行。有很多业主在前 2000 个位置张贴了照片,因此之前的查询显然返回了不正确(不完整)的数据。

但与之前的查询相比,最后一种方法(循环遍历所有朋友)在性能方面很糟糕 - 我们说的是几分钟而不是几秒钟。

这是一个已知问题或限制吗?有什么解决方法吗?

【问题讨论】:

  • 您为什么认为在 WHERE 子句中使用 owner 不是一个好主意?
  • 汤米,我没想到。由于我在 WHERE 子句中与所有者对照片的查询永远不会返回,我想我应该尝试另一种方法。我并不是说我知道使用 owner 是个坏主意。

标签: facebook api facebook-fql photo


【解决方案1】:

我的一位 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 快得多。

他说他会针对我原始查询的错误结果提交一个错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    相关资源
    最近更新 更多