1

Riak の map/reduce ジョブに Search の結果をフィードできることはわかっています。検索したいアイテムのバケツがあります。次に、map/reduce を使用して、100 としましょう。単純な解決策は、キーワードを検索し、制限を適用して、100 個のキーのセットで新しい map/reduce ジョブを開始することです。

ただし、Riak ですべての作業を行いたいと考えています。検索で直接マップ/リデュースを開始します。現在、ここで説明されている map/reduce init を使用しています。

"inputs": {
    "bucket":"mybucket",
    "query":"foo OR bar"
}

検索ですべてのキーが返されるのではなく、検索の上位一致のみが返されるように制限を設ける方法はありますか? このようなもの:

"inputs": {
    "bucket":"mybucket",
    "query":"foo OR bar",
    "limit": 10
}
4

1 に答える 1

0

ここでのコツは、どの 100 個のキーが「トッ​​プ」であるかを判断することです。マップ フェーズは 1/N 個の vnode で個別に実行され、一度に 1 つのオブジェクトしか表示されないため、マップ関数は全体のトップ キーとなるキーを特定できません。reduce フェーズの並べ替えが必要で、上位 100 を返します。reduce フェーズの引数として制限を MR に渡すことができるため、毎回関数を再作成する必要はありません。 この質問には、あなたに関連する情報があるかもしれません

于 2014-05-13T15:23:18.107 に答える