1

ユーザーの名前に従って、すべての Facebook ユーザーに対してパブリック検索を実行したいのですが、正確な名前で検索しないようにします。たとえば、ユーザーが「John Ada」を検索すると、「John Adam」という結果も取得されます。その後、結果を相互フレンド数で並べ替える必要があります。

次の 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 をいじろうとしましたが、どちらも成功しませんでした。

ありがとう!

4

1 に答える 1

0

Facebook の検索アルゴリズムは、氏名を検索するように最適化されているようです。部分的な名前は、完全な名前ほど多くの結果を返さないようです。私の経験では、Facebook は一般的なバリアントの名前を拡張する方法を知っています。「John Adams」を検索すると、「John Adams」、「Johnny Adams」、および「John Addams」が返されます。

あなたが戦っているもう 1 つの戦いは、Facebook のフィルタリング アルゴリズムです。Facebook は、最初にクエリに一致するすべての一致を検索し、ユーザーに表示されるようにそれらフィルター処理します。

ステートメントに追加AND NOT is_blockedしてみてください。WHEREこれにより、フィルタリング アルゴリズムの前に見えないものはすべて除外されます。

于 2012-10-31T20:55:22.307 に答える