1

如何在存储对象中的“真实”字段上使用排序功能?如何设置要排序的字段?

似乎以下内容指的是密钥,在我的情况下它是一个 UUID,因此无用排序:

            MapReduceResult result = riakClient.
                            mapReduce("some_bucket").
                            addMapPhase(new NamedJSFunction("Riak.mapValuesJson"), false).
                            addReducePhase(new NamedErlangFunction("riak_kv_mapreduce", "reduce_sort"), true).
                            execute();

谢谢。

4

2 回答 2

1

Basho 网站上有一个用于按字段排序的 JavaScript reduce 函数,您可以使用它。如果您要排序的文档结构过于复杂,您可能需要在 JavaScript 中定义自己的 reduce 函数。

于 2012-09-13T23:53:40.913 回答
0

如果您发现通过 MapReduce 进行排序过于繁琐,则另一个选项是 -- 在客户端进行排序。

如果您的结果集不是太大以至于无法将其放入内存中(尽管如果是的话,您可能会遇到其他问题,就 MapReduce 而言)——只需在 java 中对它进行排序,在内存中,当它返回时。

于 2012-10-21T18:07:57.547 回答