0

データをソートして返すmapreduceの関数を試していました。入力クエリのすべてのバケットキーペアがriakクラスターに存在する場合にうまく機能します。バケットとキーのペアが存在しない場合は、次のような出力が得られます。

[{"not_found":{"bucket":"newspaper-issue","key":"56276","keydata":"undefined"}}]

この出力をマップフェーズから削除することはできません。マップフェーズにいるときでも、return []この単一のオブジェクトが返されます。

私の質問は、入力にバケット/キーが欠落している可能性があるため、この出力をどのように回避できるかです。

マップ関数は次のようになります。

"language" => "javascript",
"source" => "function(value,keyData,arg){
   return []
 },
"keep"=>true
4

1 に答える 1

2

これはすでに私たちのメーリングリストで回答されているようですが、SOでも回答を入手できるようにしたいと考えています。

これを修正するためにreduceフェーズで使用する組み込みのJS関数があります。filterNotFound()

return  Riak.filterNotFound(your_object_passed_from_map_phase);
于 2012-10-01T16:54:21.607 に答える