This is a Python example, but I'm sure you can do the same with Java. One solution if you just want to consider objects as filters. You can create a handler that processes filters from mapreduce.yaml
- name: Query on Actors mapper: handler: mapper_api.query_process input_reader: google.appengine.ext.mapreduce.input_readers.DatastoreInputReader params: - name: entity_kind value: common.models.Actor - name: filters value: age<27, name=toto
Then in your mapper_api.py you have to explode and process each filter:
def query_process(entity): ctx = context.get() pms = ctx.mapreduce_spec.mapper.params filters = pms['filters'] if match(entity, filters): yield op.counters.Increment("matched")
So, now in your / mapreduce you can select mapper Query on Actors and pass some filters to it.
sahid source share