1

我想根据用户名对所有 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

但它只返回确切的名称,如果名称缺少像我之前的示例那样的字母,则不会检索用户。

我试图弄乱偏移和限制,但也没有成功。

谢谢!

4

1 回答 1

0

Facebook 搜索算法似乎已针对查找全名进行了优化。部分名称似乎永远不会像全名那样返回尽可能多的结果。根据我的经验,Facebook 知道如何扩展常见变体的名称。搜索“John Adams”将返回“John Adams”、“Johnny Adams”和“John Addams”

您正在打的另一场战斗是 Facebook 过滤算法。Facebook 首先找到符合您查询的所有匹配项,然后过滤它们以供您的用户查看。

您可以尝试添加AND NOT is_blocked到您的WHERE声明中。这应该在过滤算法之前过滤掉您不可见的任何内容。

于 2012-10-31T20:55:22.307 回答