Hi everyone, I wrote a simple Python wrapper which makes use of Riak Secondary Indexes and MapReduce for Qerying multiple indexes at once. I know it might not be the ideal solution but thought It'd be a kind of cool stuff to do. Here is how it works.
1. Queries Multiple Indexes and get the associated keys 2. Pass the keys to a MapReduce job where Multiple filters are again evaluated. The map phase applies all the conditions to individual keys client = riak.RiakClient('localhost', 8091) bucket = client.bucket('test_multi_index') bucket.new('sree', {'name': 'Sreejith', 'age': '25'}).\ add_index('name_bin', 'Sreejith').\ add_index('age_int', 25).store() bucket.new('vishnu', {'name': 'Vishnu', 'age': '31'}).\ add_index('name_bin', 'Vishnu').\ add_index('age_int', 31).store() query = RiakMultiIndexQuery(client, 'test_multi_index') for res in query.filter('age', '<', 50).filter('name', '==', 'Vishnu').run(): : print res But the inequality filters are based on MIN and MAX values for both *bin*and *int *indexes (I set that to 99999999999999999 for *int* and '' for *bin*). I'm not sure if that is correct or there is another way to achieve that. Suggestions and patches are always welcome :-) https://github.com/semk/utils/blob/master/riak_multi_query.py -- Regards, Sreejith K
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com