Maybe my question below was not clear enough. I wonder why get_index() returns a list of lists (containing bucket/key pairs), when mapred() wants a list of tuples (containing bucket/key pairs). Looks like an unnecessary conversion by the user too me.
/Roland ----- Original Message ----- From: "Roland Karlsson" <[email protected]> To: [email protected] Sent: Wednesday, October 5, 2011 4:33:17 PM Subject: Re: Secondary Index ?? Thanx - now it works! Your explanations were very good. I also found I had to change from bitcask to eleveldb. I added one object with the same index and then I got the answer {ok, [[<<"persons">>,<<"kenny">>],[<<"persons">>,<<"bosse">>]]} Hmmm ... why is it a list in a list? /Roland ----- Original Message ----- From: "Russell Brown" <[email protected]> To: "Roland Karlsson" <[email protected]> Cc: [email protected] Sent: Wednesday, October 5, 2011 3:12:04 PM Subject: Re: Secondary Index ?? On 5 Oct 2011, at 13:45, Roland Karlsson wrote: > Hi, > > I might not look hard enough - but I cannot find how to use > the secondary indices from the riakc erlang client interface. > No example and no manual. Ooops, we'll get on that. > > I need a simple example how to write an indexed object > and also a simple example how to look it up via the index. > > This is my own try to write and lookup an object > It does not work :) Doesn't work crash or doesn't work, you get {ok, []} when you query the index? > > ---------------------------------------------------------- > write_index(Pid) -> > > > > Bucket = <<"persons">>, > Key = <<"bosse">>, > Index = {<<"lives">>, <<"sumatra">>}, Indexes should have a suffix of either _bin for binary or _int for integer. > Obj = riakc_obj:new(Bucket, Key, <<"1949">>), > Meta = dict:store(?MD_INDEX, Index, dict:new()), Index should be a list. If it *was* in a list you would have got an error {error,<<"{precommit_fail,[{unknown_field_type,<<\"lives\">>}]}">>} on put. > Obj2 = riakc_obj:update_metadata(Obj, Meta), > riakc_pb_socket:put(Pid, Obj2). > ---------------------------------------------------------- > read_index(Pid) -> > Bucket = <<"persons">>, > Index = <<"lives">>, Again, the suffix. or you'll get {error,<<"{inputs,[{unknown_field_type,<<\"lives\">>}]}">>} when you do that get_index. > IndexKey = <<"sumatra">>, > riakc_pb_socket:get_index(Pid, Bucket, Index, IndexKey). > > > ---------------------------------------------------------- Do _all_ that and I get {ok,[[<<"persons">>,<<"bosse">>]]} as the output from get_index. We'll get those docs updated. Cheers Russell > > > /Roland > > _______________________________________________ > 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
