Hi fxmy, > The return value is just Bucket/Key/link-tag pairs, without ObjectValue or > other metadata. > {ok,[{0,[[<<"people">>,<<"timoreilly">>,<<"friend">>]]}, > {1,[[<<"people">>,<<"dhh">>,<<"friend">>]]}]} > > Is this intended or not?
This is intended. You are running a map reduce job with one “link” stage, which does the link walking for you. Link stages only return a list of key/value/relation tuples. > If so, what's the best way to get these ObjectValues through one single pass > of link-walking? If you want to grab everything in one shot you would have to feed the link stage’s output into a map stage to grab the actual objects: {ok, RiakObj} = riakc_pb_socket:mapred(Pid,[{<<"people">>, <<"timoreilly">>}], [{link, <<"people">>, <<"friend">>, false}, {link, <<"people">>, <<"friend">>, false}, {map, {modfun, riak_kv_mapreduce, map_identity}, none, true}]). This should give you the entire object for the results of the last link phase, namely Dave Thomas’s. I should warn you thought that while link walking and map reduce let you do things like this in one shot, you should be cautious about using them in production since a bad query can kill performance. Thanks, Alex On Mar 14, 2014, at 6:49 AM, fxmy wang <fxm...@gmail.com> wrote: > > Hi, list, > > This should be a trivial question and I think I'm definitely missing > something( and feeling stupid :\). > > So when I am doing a chained link-walking through HTTP interface like > this(copied from link walking docs): > curl -v localhost:8091/riak/people/davethomas/_,friend,1/_,friend,_/ > > The output is quite verbose, including Bucket/Key/Value etc.etc. > --JCgqdOHsL4BdXPCb0cuQDnLTxOH > Content-Type: multipart/mixed; boundary=LpfqXc9urbAJJNFH7aGGPBiAtnX > > --LpfqXc9urbAJJNFH7aGGPBiAtnX > X-Riak-Vclock: a85hYGBgzGDKBVIcc+04TgWFOj/NYEpkzGNlyNCadoYvCwA= > Location: /riak/people/timoreilly > Content-Type: text/plain > Link: </riak/people/dhh>; riaktag="friend", </riak/people>; rel="up" > Etag: 3DmGNeyDj2hUlLR2UhJvMr > Last-Modified: Thu, 13 Mar 2014 13:11:04 GMT > > I am an excellent public speaker. > --LpfqXc9urbAJJNFH7aGGPBiAtnX-- > > --JCgqdOHsL4BdXPCb0cuQDnLTxOH > Content-Type: multipart/mixed; boundary=IcBLyeIFObvJlJGyXuhTty5cRSs > > --IcBLyeIFObvJlJGyXuhTty5cRSs > X-Riak-Vclock: a85hYGBgzGDKBVIcR4M2cgeFOkdkMCUy5rEyzNSadoYvCwA= > Location: /riak/people/dhh > Content-Type: text/plain > Link: </riak/people>; rel="up" > Etag: 4qbA2ZufXNgzFRb8PlSLUO > Last-Modified: Thu, 13 Mar 2014 13:11:53 GMT > > I drive a Zonda. > --IcBLyeIFObvJlJGyXuhTty5cRSs-- > > --JCgqdOHsL4BdXPCb0cuQDnLTxOH-- > > > But when I retried it through the erlang_pb_client > riakc_pb_socket:mapred(Pid,[{<<"people">>, <<"davethomas">>}],[{link, > <<"people">>, <<"friend">>, true},{link, <<"people">>, <<"friend">>, true}]). > > The return value is just Bucket/Key/link-tag pairs, without ObjectValue or > other metadata. > {ok,[{0,[[<<"people">>,<<"timoreilly">>,<<"friend">>]]}, > {1,[[<<"people">>,<<"dhh">>,<<"friend">>]]}]} > > Is this intended or not? > If so, what's the best way to get these ObjectValues through one single pass > of link-walking? > > > Cheers, > _______________________________________________ > riak-users mailing list > riak-users@lists.basho.com > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com