private Flowable<WriteResult> delete(StandardOperations.Delete op) {
      Query query = op.query();
      ObjectNode json = objectMapper.createObjectNode();

      QueryBuilders.QueryBuilder builder = query.filter()
              .map(f ->Elasticsearch.toBuilder(f, pathNaming, idPredicate))
              .orElse(QueryBuilders.matchAll());

      json.set("query", builder.toJson(objectMapper));
      return ops.deleteByQuery(json).toFlowable();
    }
Queries <a href="https://www.elastic.co/">ElasticSearch</a> data-store.
criteria/elasticsearch/src/org/immutables/criteria/elasticsearch/ElasticsearchBackend.java