static private String datatypeAsString(AttributesConfig.Attribute attribute) {
        var datatype = attribute.datatype();
        if (datatype == AttributesConfig.Attribute.Datatype.TENSOR && !attribute.tensortype().isEmpty()) {
            return attribute.tensortype();
        }
        return switch (datatype) {
            case STRING -> "string";
            case BOOL -> "bool";
            case UINT2 -> "uint2";
            case UINT4 -> "uint4";
            case INT8 -> "byte";
            case INT16 -> "short";
            case INT32 -> "int";
            case INT64 -> "long";
            case FLOAT16 -> "float16";
            case FLOAT -> "float";
            case DOUBLE -> "double";
            case PREDICATE -> "predicate";
            case TENSOR -> "tensor";
            case REFERENCE -> "reference";
            case RAW -> "raw";
            case NONE -> "none";
        };
    }
Constructs a new instance of this searcher with the given component id and config.

@param clusterConfig The config for the cluster that this searcher is deployed for.
container-search/src/main/java/com/yahoo/search/grouping/GroupingValidator.java