Beispiel #1
0
 def test_mr_search(self):
     """
     Try a successful map/reduce from search results.
     """
     btype = self.client.bucket_type(self.yz_mr['btype'])
     bucket = btype.bucket(self.yz_mr['bucket'])
     bucket.new(
         "Pebbles", {
             "name_s": "Fruity Pebbles",
             "maker_s": "Post",
             "sugar_i": 9,
             "calories_i": 110,
             "fruit_b": True
         }).store()
     bucket.new(
         "Loops", {
             "name_s": "Froot Loops",
             "maker_s": "Kellogg's",
             "sugar_i": 12,
             "calories_i": 110,
             "fruit_b": True
         }).store()
     bucket.new(
         "Charms", {
             "name_s": "Lucky Charms",
             "maker_s": "General Mills",
             "sugar_i": 10,
             "calories_i": 110,
             "fruit_b": False
         }).store()
     bucket.new(
         "Count", {
             "name_s": "Count Chocula",
             "maker_s": "General Mills",
             "sugar_i": 9,
             "calories_i": 100,
             "fruit_b": False
         }).store()
     bucket.new(
         "Crunch", {
             "name_s": "Cap'n Crunch",
             "maker_s": "Quaker Oats",
             "sugar_i": 12,
             "calories_i": 110,
             "fruit_b": False
         }).store()
     # Wait for Solr to catch up
     wait_for_yz_index(bucket, "Crunch")
     mr = RiakMapReduce(self.client).search(self.yz_mr['bucket'],
                                            'fruit_b:false')
     mr.map("""function(v) {
         var solr_doc = JSON.parse(v.values[0].data);
         return [solr_doc["calories_i"]]; }""")
     result = mr.reduce('function(values, arg) ' +
                        '{ return [values.sort()[0]]; }').run()
     self.assertEqual(result, [100])
    def reduce(self, *args):
        """
        Start assembling a Map/Reduce operation.
        A shortcut for :meth:`~riak.mapreduce.RiakMapReduce.reduce`.

        :rtype: :class:`~riak.mapreduce.RiakMapReduce`
        """
        mr = RiakMapReduce(self.client)
        mr.add(self.bucket.name, self.key)
        return mr.reduce(*args)
    def reduce(self, *args):
        """
        Start assembling a Map/Reduce operation.
        A shortcut for :func:`RiakMapReduce.reduce`.

        :rtype: RiakMapReduce
        """
        mr = RiakMapReduce(self.client)
        mr.add(self.bucket.name, self.key)
        return mr.reduce(*args)
Beispiel #4
0
    def reduce(self, *args):
        """
        Start assembling a Map/Reduce operation.
        A shortcut for :meth:`~riak.mapreduce.RiakMapReduce.reduce`.

        :rtype: :class:`~riak.mapreduce.RiakMapReduce`
        """
        mr = RiakMapReduce(self.client)
        mr.add(self.bucket.name, self.key)
        return mr.reduce(*args)
Beispiel #5
0
    def reduce(self, *args):
        """
        Start assembling a Map/Reduce operation.
        A shortcut for :func:`RiakMapReduce.reduce`.

        :rtype: RiakMapReduce
        """
        mr = RiakMapReduce(self.client)
        mr.add(self.bucket.name, self.key)
        return mr.reduce(*args)
 def test_mr_search(self):
     """
     Try a successful map/reduce from search results.
     """
     btype = self.client.bucket_type(testrun_yz_mr['btype'])
     bucket = btype.bucket(testrun_yz_mr['bucket'])
     bucket.new("Pebbles", {"name_s": "Fruity Pebbles",
                            "maker_s": "Post",
                            "sugar_i": 9,
                            "calories_i": 110,
                            "fruit_b": True}).store()
     bucket.new("Loops", {"name_s": "Froot Loops",
                          "maker_s": "Kellogg's",
                          "sugar_i": 12,
                          "calories_i": 110,
                          "fruit_b": True}).store()
     bucket.new("Charms", {"name_s": "Lucky Charms",
                           "maker_s": "General Mills",
                           "sugar_i": 10,
                           "calories_i": 110,
                           "fruit_b": False}).store()
     bucket.new("Count", {"name_s": "Count Chocula",
                          "maker_s": "General Mills",
                          "sugar_i": 9,
                          "calories_i": 100,
                          "fruit_b": False}).store()
     bucket.new("Crunch", {"name_s": "Cap'n Crunch",
                           "maker_s": "Quaker Oats",
                           "sugar_i": 12,
                           "calories_i": 110,
                           "fruit_b": False}).store()
     # Wait for Solr to catch up
     wait_for_yz_index(bucket, "Crunch")
     mr = RiakMapReduce(self.client).search(testrun_yz_mr['bucket'],
                                            'fruit_b:false')
     mr.map("""function(v) {
         var solr_doc = JSON.parse(v.values[0].data);
         return [solr_doc["calories_i"]]; }""")
     result = mr.reduce('function(values, arg) ' +
                        '{ return [values.sort()[0]]; }').run()
     self.assertEqual(result, [100])