@Override
 public Query createQuery() {
   final int size = fieldContexts.size();
   if (size == 1) {
     return queryCustomizer.setWrappedQuery(createQuery(fieldContexts.get(0))).createQuery();
   } else {
     BooleanQuery.Builder aggregatedFieldsQueryBuilder = new BooleanQuery.Builder();
     for (FieldContext fieldContext : fieldContexts) {
       aggregatedFieldsQueryBuilder.add(createQuery(fieldContext), BooleanClause.Occur.SHOULD);
     }
     BooleanQuery aggregatedFieldsQuery = aggregatedFieldsQueryBuilder.build();
     return queryCustomizer.setWrappedQuery(aggregatedFieldsQuery).createQuery();
   }
 }