我是Riak的新手,也是Erlang的新手。我已成功创建并运行JS MapReduce作业,现在我正在尝试执行以下Reduce函数:
http://web.archive.org/web/20130329021000/http://contrib.basho.com/delete_keys.html
执行此reduce功能的步骤是什么?具体来说,
addReducePhase( )
输入什么内容?由于
答案 0 :(得分:4)
你应该写一些类似的东西:
MapReduceResult result = client.mapReduce("myBucket")
.addLinkPhase("bucketX", "test", false)
.addMapPhase(new NamedJSFunction("Riak.mapValuesJson"), false)
.addReducePhase(new NamedErlangFunction("riak_kv_mapreduce", "reduce_sort"), true)
.execute();
在这种情况下,reduce阶段调用erlang模块riak_kv_mapreduce的函数reduce_sort。 在你的情况下你应该打电话
.addReducePhase(new NamedErlangFunction("reduce_functions", "delete"), true)
(最后的结果是一个标志,如果必须将结果返回给客户端 - 最后一步 - 或者不是 - 中间步骤 - )
Erlang文件在使用前应编译为.beam,并添加到riak.config中的“add_paths”参数,如
{add_paths, ["/home/vinz/riak/custom_modules/"]}
其中/ home / vinz / riak / custom_modules是包含已编译的Erlang模块的目录。
有关详细信息,请参阅Basho Java Client readme。 我希望这有帮助!