我正在为Riak在erlang中编写mapreduce查询,我想通过Ubuntu终端上的curl使用HTTP API将参数传递给Riak。查询的输入是2i查询,但我想要一个参数来允许进一步过滤。我认为选项是关键字,因为python客户端是我将在生产中使用的,但它不便于校对我的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"
}},
]}'
在我看到的三个记录集上:
["none", "none", "none"]
但我想:
["test", "test", "test"]
参数的格式是什么?
答案 0 :(得分:2)
我在Erlang中开发了set of configurable utility functions for Riak mapreduce。由于我希望能够指定critera集,我决定允许用户将配置作为JSON文档传递,因为这适用于所有客户端类型,尽管其他文本表示也应该有效。有关如何从curl使用这些函数的示例,请参见README.markdown文件。
您可以通过'arg'参数将参数传递给每个单独的地图或减少阶段功能。无论您在此处指定什么,都将作为最终参数传递给地图或减少阶段,请参阅下面的示例:
"query":[{"map":{"language":"erlang","module":"riak_mapreduce_utils",
"function":"map_link","keep":false,
"arg":"{\"bucket\":\"master\"}"}},