private Flowable<ProjectedTuple> aggregate(StandardOperations.Select op) {
      final Query query = op.query();
      Preconditions.checkArgument(query.hasAggregations(), "No Aggregations");
      AggregateQueryBuilder builder = new AggregateQueryBuilder(query, objectMapper, ops.mapping, pathNaming, idPredicate);
      return ops.searchRaw(builder.jsonQuery(), Collections.emptyMap())
              .map(builder::processResult)
              .toFlowable()
              .flatMapIterable(x -> x);
    }
Queries <a href="https://www.elastic.co/">ElasticSearch</a> data-store.
criteria/elasticsearch/src/org/immutables/criteria/elasticsearch/ElasticsearchBackend.java