@Override
  public void writeTo(StreamOutput out) throws IOException {
    super.writeTo(out);
    out.writeFloat(minScore);

    out.writeBytesReference(querySource);

    out.writeVInt(types.length);
    for (String type : types) {
      out.writeString(type);
    }
    if (filteringAliases != null) {
      out.writeVInt(filteringAliases.length);
      for (String alias : filteringAliases) {
        out.writeString(alias);
      }
    } else {
      out.writeVInt(0);
    }
    out.writeVLong(nowInMillis);
  }
 @Override
 public void writeTo(StreamOutput out) throws IOException {
   super.writeTo(out);
   out.writeBoolean(recovery);
   out.writeBoolean(snapshot);
 }