3
我正在玩riak-java客戶端。Riak ReferenceError - 與自定義javascript
現在我遇到了自定義JavaScript的麻煩,我想在地圖減少查詢中使用。
如果我使用純javascript函數作爲anon函數,它們運行良好。
因此,這裏是我做過什麼:在/ tmp/js_source
取消註釋在app.conf
{js_source_dir, "/tmp/js_source"},
然後我存儲mylib.js
/* content of mylib.js */
var NS = (function() {
return {
mapHighValues: function(value, keydata, arg) {
var data = JSON.parse(value.values[0].data);
ejsLog('/tmp/map_reduce.log', JSON.stringify(data.High));
return [data.High];}
},
reduceSumHighValues: function(values) {
ejsLog('/tmp/map_reduce.log', "ReduceVals\n" + JSON.stringify(values));
return [values.reduce(function(prev, curr, index, array) {return prev + curr} ,0)];
}
}
})();
後,我重新開始了Riak 。
下面是相關的Java代碼:
MapReduceBuilder builder = new MapReduceBuilder(new RiakClient("localhost"))
.setBucket("goog")
.map(JavascriptFunction.named("NS.mapHighValues"), false)
.reduce(JavascriptFunction.named("NS.reduceSumHighValues"), true);
MapReduceResponseSource response = builder.submit();
有誰看到我的錯誤?
乾杯
ApeHanger