2

我寻找名称中有模式的 facebook 用户(任何用户,不仅仅是我的朋友或特定用户的朋友),如下所示:

SELECT first_name,uid FROM user WHERE contains('pete')

这将返回一个名字包含“pete”(即“peter”)的人的数组。这个数字相当高,所以结果当然会被截断。我想在这个集合中(在服务器端截断之前)抓住与​​我有最多共同朋友(或具有任意用户 ID)的人。然而,发出

SELECT first_name,uid FROM user WHERE contains('pete') AND mutual_friend_count > 1

给出和空集(并且没有错误)。我认为服务器在应用后一个选择之前会截断,因为在正常 SQL 中会发生,出于性能原因(或我在文档中遗漏的明确限制)。

我通过尝试检索用户 ID 的朋友的所有朋友来进行第二次尝试,然后选择名称。但是,不允许检索朋友的朋友(这在技术上很困难,因为有些朋友隐藏了他们的朋友列表,这会破坏查询)。

我看不出有其他方法可以实现我的目标……有吗?(我的意思是:给定一个用户 ID,搜索拥有最多共同好友的用户)。

4

2 回答 2

0

我刚刚用“order bymutual_friend_count desc”试了一下,它奏效了。所以查询需要是:

SELECT first_name,uid FROM user WHERE contains('pete') order bymutual_friend_count desc

于 2012-06-01T17:59:31.430 回答
0

由于没有 FQL 解决方案,您最好的选择当然是按照 Facebook 的最佳实践和政策创建自己的数据库。这样你就可以构建你的数据。数据可以通过设置 Facebook 的实时更新 API (https://developers.facebook.com/docs/reference/api/realtime/) 来保持最新状态,以捕捉新朋友的建立。

于 2012-05-14T22:45:34.330 回答