On Apr 23, 2012, at 8:29 AM, Bryan Fink wrote: > On Sat, Apr 21, 2012 at 12:39 PM, Sam Lang <saml...@gmail.com> wrote: >> When I use ascii or json objects, I don't get the exception, and the keys >> get listed properly. I assume that riak is trying to parse the data of my >> binary object and failing because the data isn't utf8 encoded. Is it >> possible to do this without writing my own data extractor? Is there a >> better way to list a subset of keys? > > Hi, Sam. Your intuition is correct: the bad_utf8_character_code error > is coming from Riak trying to encode each object to JSON for your > Javascript map phase to process. > > If all you want is to get the keys back to your client, and you're > using Riak 1.1 or newer with the latest Python client, then the > simplest workaround is to call query.run() without any phases at all: > >>>> query = client.add("foo") >>>> query.add_key_filter("ends_with", "z") > <riak.mapreduce.RiakMapReduce object at 0x1006675d0> >>>> v = query.run() >>>> v[0]._key > u'baz' > > Note that you will still end up with an encoding error if your keys > cannot be encoded as JSON.
That worked, thanks Bryan! Any way to avoid sending the values of the object to the client as well? -sam > > HTH, > Bryan > > P.S. If you're using an older version of Riak and/or the Python > client, you may need to use the hack of a single-phase query, of just > one reduce phase implemented by the Erlang function > riak_kv_mapreduce:reduce_identity, instead of using the empty query. _______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com