如何在存儲對象的'真實'字段中使用排序功能?我如何設置我想要排序的字段?Riak - MapReduce字段排序
看來,以下是指關鍵,在我的情況下,它是一個UUID,因此沒用排序:
MapReduceResult result = riakClient.
mapReduce("some_bucket").
addMapPhase(new NamedJSFunction("Riak.mapValuesJson"), false).
addReducePhase(new NamedErlangFunction("riak_kv_mapreduce", "reduce_sort"), true).
execute();
感謝。
謝謝克里斯蒂安,我之前就看到過。我不明白的是如何從java客戶端使用它。這是行不通的:addReducePhase(new NamedJSFunction(「Contrib.sort」,{乘:'passengers',order:'desc'}),true);因爲NamedJSFunction方法需要2個字符串參數。我的文檔結構沒有被複制 - 它是一個pojo。 –
爲了能夠按名稱使用該功能,並且不通過mapreduce查詢傳遞該功能,需要在所有riak節點上使用該功能。這可以通過在app.config文件中定義參數'js_source_dir'來完成,如[here]所述(https://help.basho.com/entries/321385-how-do-i-load-3rd-party-javascript -libraries用型式-MAP-減少函數)。您需要運行'bin/riak-admin js_reload'才能使這些功能可用。 –