Shouldn't that last ends_with only be a single nested array, not a doubly nested array?
--- Jeremiah Peschka Founder, Brent Ozar PLF On Sunday, June 5, 2011 at 8:40 PM, Ryan Caught wrote: > Yeah, I did look at the spec. The first two results work fine, it's only the > "and" based key filter that throws the error. > > On Sun, Jun 5, 2011 at 8:30 PM, Jeremiah Peschka <jeremiah.pesc...@gmail.com > (mailto:jeremiah.pesc...@gmail.com)> wrote: > > When in doubt, I always look at the spec. In this case: > > https://github.com/seancribbs/ripple/blob/master/riak-client/spec/riak/map_reduce/filter_builder_spec.rb > > > > So you'll want to do something roughly like: > > > > filter { Riak::MapReduce::FilterBuilder.new } > > filter.tokenize "-", "1" do > > eq "test" > > end > > > > There's a really good chance that's wrong since I'm only looking at some > > Ruby in an editor and not testing against a running Riak cluster right now. > > Hopefully that sets you on the right track or else angries up someone who > > will correct me. > > --- > > Jeremiah Peschka > > Founder, Brent Ozar PLF > > > > > > On Sunday, June 5, 2011 at 7:46 PM, Ryan Caught wrote: > > > > > > > > > Hi, > > > I'm having a problem with Ripple and logical operator key filters. Has > > > anyone managed to get "and" or "or" key filter combinations working? > > > > > > When I run the following: > > > > > > require 'ripple' > > > > > > client = Riak::Client.new > > > bucket = client.bucket("test_bucket") > > > > > > one = Riak::RObject.new(bucket, "test-123") > > > one.content_type = "application/json" > > > one.data = '{"name": "test-123"}' > > > one.store > > > > > > two = Riak::RObject.new(bucket, "test-456") > > > two.content_type = "application/json" > > > two.data = '{"name": "test-456"}' > > > two.store > > > > > > > > > results_1 = Riak::MapReduce.new(client). > > > add("visitors", [["tokenize", "-", 1], ["eq", "test"]]). > > > map("Riak.mapValuesJson", :keep => true).run > > > # Works as expected > > > p results_1 > > > > > > results_2 = Riak::MapReduce.new(client). > > > add("visitors", [["ends_with", "123"]]). > > > map("Riak.mapValuesJson", :keep => true).run > > > # Works as expected > > > p results_2 > > > > > > results_3 = Riak::MapReduce.new(client). > > > add("test_bucket", ["and", [["tokenize", "-", 1], ["eq", "test"]], > > > [["ends_with", "123"]] > > > ]). > > > map("Riak.mapValuesJson", :keep => true).run > > > # Error > > > p results_3 > > > > > > > > > > > > > > > > > > This is what the error report says: > > > > > > =ERROR REPORT==== 5-Jun-2011::19:42:34 === > > > webmachine error: path="/mapred" > > > {error,{error,function_clause, > > > [{riak_client,build_exprs, > > > [[<<"and">>, > > > [[<<"tokenize">>,<<"-">>,1], > > > [<<"eq">>,<<"test">>]], > > > [[<<"ends_with">>,<<"123">>]]], > > > [], > > > {riak_client,'riak@127.0.0.1 (mailto:riak@127.0.0.1)',<<6,82,5,153>>}]}, > > > {riak_client,build_filter,2}, > > > {riak_client,stream_list_keys,6}, > > > {riak_client,mapred_bucket_stream,7}, > > > {riak_client,mapred_bucket,6}, > > > {riak_kv_wm_mapred,process_post,2}, > > > {webmachine_resource,resource_call,3}, > > > {webmachine_resource,do,3}]}} > > > > > > > > > > > > Any ideas? > > > _______________________________________________ > > > riak-users mailing list > > > riak-users@lists.basho.com (mailto: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