private static String syntheticName(Set<String> summaryFields) {
        // ensure deterministic ordering:
        var sorted = new TreeSet<String>(summaryFields);
        var buf = new StringBuilder();
        buf.append("[f:");
        for (String field : sorted) {
            buf.append(buf.length() == 3 ? "" : ",");
            buf.append(field);
        }
        buf.append(']');
        return buf.toString();
    }
resolve summary class to use when none provided
container-search/src/main/java/com/yahoo/prelude/fastsearch/PartialSummaryHandler.java