Riak-MapReduce对字段进行排序



如何在存储对象中的"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对它进行排序。

最新更新