3

Riak の erlang で mapreduce クエリを作成しており、Ubuntu 端末で curl を介して HTTP API を使用して Riak にパラメーターを渡したいと考えています。クエリへの入力は 2i クエリですが、さらにフィルタリングできるようにパラメーターが必要です。Python クライアントは本番環境で使用するものなので options がキーワードだと思っていましたが、Erlang のプルーフには不便で、チームで常に使用されているキーワードです。

これは私がしようとしているものです:

curl -X POST http://riakhost:port/mapred -H 'Content-Type: application/json' -d '{
    "inputs": {
        "bucket":"mybucket",
        "index":"field1_bin",
        "key":"val3"
    },
    "options": "test",
    "query": [
        {"map": {"language": "erlang", 
         "module": "mapreduce", 
         "function":"map"
        }},
    ]}'

私が見ている3つのレコードセットで:

["none", "none", "none"]

でも私はしたい:

["test", "test", "test"]

引数の形式は何ですか?

4

1 に答える 1

2

Erlangで Riak mapreduce 用の設定可能なユーティリティ関数のセットを開発しました。基準のセットを指定できるようにしたかったので、他のテキスト表現も機能するはずですが、これはすべてのクライアント タイプでうまく機能するため、ユーザーが構成を JSON ドキュメントとして渡すことを許可することにしました。curl からこれらの関数を使用する方法の例は、README.markdown ファイルで入手できます。

'arg' パラメーターを使用して、個々の map または reduce フェーズ関数に引数を渡すことができます。ここで指定したものはすべて、map または reduce フェーズへの最終パラメーターとして渡されます。以下の例を参照してください。

"query":[{"map":{"language":"erlang","module":"riak_mapreduce_utils",
                 "function":"map_link","keep":false,
                 "arg":"{\"bucket\":\"master\"}"}},
于 2012-12-20T14:49:59.350 に答える