如何在存储对象中的"real"字段上使用排序函数?如何设置要排序的字段?
下面似乎指的是密钥,在我的情况下,它是一个UUID,因此排序毫无用处:
MapReduceResult result = riakClient.
mapReduce("some_bucket").
addMapPhase(new NamedJSFunction("Riak.mapValuesJson"), false).
addReducePhase(new NamedErlangFunction("riak_kv_mapreduce", "reduce_sort"), true).
execute();
谢谢。
Basho网站上有一个JavaScript reduce函数,用于按字段排序,您可能可以使用它。如果要排序的文档的结构过于复杂,则可能需要在JavaScript中定义自己的reduce函数。
如果您发现通过MapReduce进行排序太麻烦,那么另一个选项是在客户端进行排序。
如果你的结果集不是很大,以至于你无法将其放入内存中(尽管如果是,你可能会有其他问题,比如MapReduce)——当它回来时,只需在内存中用java对它进行排序。