Thank you Mark. I'll contribute to the repo when I find time. Thanks Deepak Bala
On Mon, Sep 17, 2012 at 5:45 AM, Mark Phillips <[email protected]> wrote: > Addendum: > > In the interest of completeness, it's worth noting that the Erlang > builtins are here: > > https://github.com/basho/riak_kv/blob/master/src/riak_kv_mapreduce.erl > > Mark > > On Sun, Sep 16, 2012 at 5:08 PM, Mark Phillips <[email protected]> wrote: > > Hi Deepak, > > > > I can answer one of two questions here... > > > > On Fri, Sep 14, 2012 at 9:42 AM, Deepak Balasubramanyam > > <[email protected]> wrote: > >> Thanks for the tip Russell. I managed to get this done. > >> > >> I have one more question and a suggestion. > >> > >> Is the name keyData a misnomer in the mapping function -> > function(value, > >> keyData, arg) ? keyData is a String that carries the bucket name. The > value > >> object carries more information. value[0].data represents the data > itself > >> among other properties that represent user metadata; riak links; > indexes; > >> key; etc etc. > >> If mapValuesJson: function(value, keyData, arg) can take an input > argument > >> and use it to add a json property whose value is the riak key, a custom > >> function would not be necessary. It would be a neat little system > feature > >> which I take would need amendments to mapred_builtins.js. > >> > >> Is riak_kv the repo to make contributions to system built functions ? > There > >> are quite a few open pull requests on that repo, so I'm not sure where > this > >> change should go. > >> > > > > The riak_kv repo is indeed the repo you want for this. Specifically, > > you'll want to start here: > > > > https://github.com/basho/riak_kv/blob/master/priv/mapred_builtins.js > > > > As far as the large queue of pull requests go, we're working on > > merging/addressing the backlog (for this and a few other repos). Send > > yours our way. It'll get some love when time allows. > > > > Thanks. > > > > Mark > > > > > >> > >> Thanks > >> Deepak Bala > >> > >> On Fri, Sep 14, 2012 at 7:16 PM, Russell Brown <[email protected]> > wrote: > >>> > >>> > >>> On 14 Sep 2012, at 14:24, Deepak Balasubramanyam wrote: > >>> > >>> > Hi, > >>> > > >>> > I've written a map reduce query on the riak java client like so... > >>> > > >>> > client.mapReduce(BUCKET).addKeyFilter(keyFilter) > >>> > .addLinkPhase(BUCKET, "_", false) > >>> > .addMapPhase(new > >>> > NamedJSFunction("Riak.mapValuesJson"), false) > >>> > .addReducePhase(phaseFunction).execute(); > >>> > Collection<MyType> types = result.getResult(MyType.class); > >>> > > >>> > This is the class definition for MyType > >>> > > >>> > public class MyType > >>> > { > >>> > @RiakKey > >>> > private String myKey; > >>> > private String property1; > >>> > private String property2; > >>> > > >>> > /* Getters / Setters go here */ > >>> > } > >>> > > >>> > When the object mapper deserializes the results into > Collection<MyType>, > >>> > none of the types have the myKey property populated in them. When I > debugged > >>> > the calls made by riak I realized that the result of the /mapred > call does > >>> > not contain any key information in the body. It only contains the > value that > >>> > each key represents. So that explains why the keys are null in the > result. > >>> > >>> The Java client doesn't add the value of the @RiakKey field to the > value > >>> stored in riak. > >>> > >>> > > >>> > On the contrary, a link walk in riak returns the Location header for > >>> > each multipart form entry in the response (Location: > /riak/bucket/key). So I > >>> > guess there is at least some way to tweak a client to parse the > location to > >>> > get the keys, but you lose out on the map-reduce goodness. > >>> > > >>> > Is there some way a map-reduce query can be formed to allow the > >>> > resulting type's RiakKey to be populated ? What are my options ? > >>> > >>> A custom Map function may do what you want. Get the Key from the Key > Data > >>> passed to the Map function and add it to the JSON value returned. > Jackson > >>> should then take care of de-serialising it into your values. > >>> > >>> Cheers > >>> > >>> Russell > >>> > >>> > > >>> > Thanks > >>> > Deepak Bala > >>> > _______________________________________________ > >>> > riak-users mailing list > >>> > [email protected] > >>> > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com > >>> > >> > >> > >> _______________________________________________ > >> riak-users mailing list > >> [email protected] > >> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com > >> >
_______________________________________________ riak-users mailing list [email protected] http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
