code: def index(self, bucket, index, startkey, endkey=None, bucket_type=None):
          
  
          mr = RiakMapReduce(self)
          return mr.index(bucket, index, startkey, endkey, bucket_type)
docs: Start assembling a Map/Reduce operation based on secondary
          index query results.
  
          :param bucket: The bucket over which to perform the query
          :type bucket: string
          :param index: The index to use for query
          :type index: string
          :param startkey: The start key of index range, or the
             value which all entries must equal
          :type startkey: string, integer
          :param endkey: The end key of index range (if doing a range query)
          :type endkey: string, integer, None
          :param bucket_type: Optional name of a bucket type
          :type bucket_type: string, None
          :rtype: :class:`RiakMapReduce`