docs: public void prepare(ResponseBuilder rb, ComponentFields mtasFields)
        throws IOException {
      Set<String> ids = MtasSolrResultUtil
          .getIdsFromParameters(rb.req.getParams(), PARAM_MTAS_PREFIX);
      if (!ids.isEmpty()) {
        int tmpCounter = 0;
        String[] fields = new String[ids.size()];
        String[] keys = new String[ids.size()];
        for (String id : ids) {
          fields[tmpCounter] = rb.req.getParams().get(
              PARAM_MTAS_PREFIX + "." + id + "." + NAME_MTAS_PREFIX_FIELD, null);
          keys[tmpCounter] = rb.req.getParams()
              .get(PARAM_MTAS_PREFIX + "." + id + "." + NAME_MTAS_PREFIX_KEY,
                  String.valueOf(tmpCounter))
              .trim();
          tmpCounter++;
        }
        String uniqueKeyField = rb.req.getSchema().getUniqueKeyField().getName();
        mtasFields.doPrefix = true;
        // init and checks
        for (String field : fields) {
          if (field == null || field.isEmpty()) {
            throw new IOException("no (valid) field in mtas prefix");
          } else if (!mtasFields.list.containsKey(field)) {
            mtasFields.list.put(field, new ComponentField(uniqueKeyField));
          }
        }
        MtasSolrResultUtil.compareAndCheck(keys, fields, NAME_MTAS_PREFIX_KEY,
            NAME_MTAS_PREFIX_FIELD, true);
        for (int i = 0; i < fields.length; i++) {
          String field = fields[i];
          String key = ((keys == null) || (keys[i] == null)
              || (keys[i].isEmpty())) ? String.valueOf(i) + ":" + field
                  : keys[i].trim();
          mtasFields.list.get(field).prefix = new ComponentPrefix(key);
        }
      }
    }