我想根据用户的名字对所有Facebook用户进行公开搜索,但我希望搜索不是确切的名称。例如,如果用户搜索“John Ada”,结果“John Adam”也将被检索。 之后,结果需要由mutual_friend_count订购。
我使用以下FQL部分地执行此操作:
SELECT uid,name, pic_square, profile_url , mutual_friend_count FROM user WHERE contains("Name Surename")
order by mutual_friend_count desc
但它只返回确切的名称,如果名称缺少像我之前的示例那样的字母,则用户不会被检索。
我试图弄乱Offset和Limit,但也没有成功。
谢谢!
答案 0 :(得分:0)
Facebook搜索算法似乎已经过优化,无法找到全名。部分名称似乎永远不会返回与全名一样多的结果。根据我的经验,Facebook知道如何扩展常见变体的名称。搜索“John Adam”将返回“John Adams”,“Johnny Adams”和“John Addams”
你正在战斗的另一场战斗是Facebook过滤算法。 Facebook首先找到符合您查询的所有匹配项,然后过滤它们以便您的用户可见。
您可以尝试将AND NOT is_blocked
添加到WHERE
语句中。这应该过滤掉过滤算法之前您不可见的任何内容。