最近、句で使用して 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 関数とメソッドのリファレンス ページでの説明はさらに良いでしょう。