private void process(final Injector injector) {
        final ExpressionOperator.Builder builder = ExpressionOperator.builder();

        if (createPeriodFrom != null
                && !createPeriodFrom.isEmpty()
                && createPeriodTo != null
                && !createPeriodTo.isEmpty()) {
            builder.addDateTerm(MetaFields.CREATE_TIME, Condition.BETWEEN, createPeriodFrom + "," + createPeriodTo);
        } else if (createPeriodFrom != null && !createPeriodFrom.isEmpty()) {
            builder.addDateTerm(MetaFields.CREATE_TIME, Condition.GREATER_THAN_OR_EQUAL_TO, createPeriodFrom);
        } else if (createPeriodTo != null && !createPeriodTo.isEmpty()) {
            builder.addDateTerm(MetaFields.CREATE_TIME, Condition.LESS_THAN_OR_EQUAL_TO, createPeriodTo);
        }

        final MetaService metaService = injector.getInstance(MetaService.class);
        final Store streamStore = injector.getInstance(Store.class);

        if (feed != null) {
            builder.addTextTerm(MetaFields.FEED, Condition.EQUALS, feed);
        }

        if (streamType != null) {
            builder.addTextTerm(MetaFields.TYPE, Condition.EQUALS, streamType);
        } else {
            builder.addTextTerm(MetaFields.TYPE, Condition.EQUALS, StreamTypeNames.RAW_EVENTS);
        }

        // Query the stream store
        final FindMetaCriteria criteria = new FindMetaCriteria();
        criteria.setExpression(builder.build());
        final List<Meta> results = metaService.find(criteria).getValues();

        int count = 0;
        for (final Meta meta : results) {
            count++;
            LOGGER.info("processing() - " + count + "/" + results.size() + " " + meta);

            processFile(streamStore, meta.getId(), match);
        }
    }
Handy tool to grep out content.
stroom-data/stroom-data-store-util/src/main/java/stroom/data/store/util/StreamGrepTool.java