2

Riakに精通している人は、リンクウォークを実行して2人の共通の友達を見つける方法を説明できますか(たとえば、Facebookの共通の友達のように)?また、計算要件は理想的には最小限である必要があります。サーバーは、計算を行うために長い時間を費やす必要はありません。

私はすべての「人」を「人」バケットに入れることを考えています。各「人」には友達リンクがあり(これは1対多の関係のようなものです)、「人」ごとに逆の関係になります-他の人にリンクされています(これは1対1の関係のようなものです)。これを効率的に行うことは可能であり、計算/結果はすぐに利用できるようになると思いますが、それを理解することはできません。

(申し分なく、私はRiakで実際のコーディングを開始していません。そのため、Riakのリンクウォーキング機能についてさらに詳しく説明していただければ幸いです。)

ありがとう!

4

1 に答える 1

0

私は2つの可能な解決策を見ます:

  1. ほぼこのシナリオでのMapReduceジョブ:
    • 人々AとBが比較されている2つの入力
    • 友達IDを取得するリンクフェーズ
    • それらをタプルにマップします{FriendID、1}
    • 1の合計を減らす
    • sum=2の場合にフィルターを減らします
    • %%必要に応じて、最後のいくつかの手順を1つにまとめることができます
  2. 各人に対してリンクウォーキングクエリを発行し、クライアントで返されたセットを交差させるだけです-少し醜いですが、機能します。
于 2012-04-19T16:54:17.423 に答える