最近在 Facebook.SO 上发布了几个 问题 ,使用该子句。它似乎像 Graph API 搜索功能一样工作,AND 用作索引字段。对于 FQL 开发人员来说,一切都很棒。CONTAINS()
WHERE
SELECT name,
username,
type
FROM profile
WHERE CONTAINS("Facebook")
但是,该CONTAINS
函数的唯一官方提及出现在Unified_thread文档中。顺便提到了它,作为搜索消息中包含的文本的一种方式。它也出现在这个fbrell 代码示例中。
但Contains
似乎不是一个简单的搜索。例如,这个查询:
SELECT name
FROM user
WHERE CONTAINS("Joe Biden")
返回“Joe Biden”以及“Joseph Biden”和“Biden Joe”。但它也返回“Joe Scardino”、“Lindsay Noyan”和“Mehmad Moha”等。这些人与美国副总裁有什么关系?他们不是我的朋友,所以我永远不会知道。
似乎还可以传递CONTAINS
一个字段进行搜索,但是将我的第一个查询的结尾更改为 `CONTAINS("Facebook", name) 会返回一个 OAuth 错误:
(#615) 'name' is not a valid search field for the profile table.
在我不那么严格的测试中,我还没有找到不返回此错误的字段/表格组合。
那么这个神秘功能是什么?它是如何工作的?它可以让我们做迄今为止在 FQL 中不可能完成的事情,比如遍历数组和过滤存储在字符串中的数据吗?
这里的答案会很好,但是在官方开发人员文档站点上的 FQL 函数和方法参考页面上的描述会更好。