### Description

### Description

The _terms_enum API [currently supports](https://github.com/elastic/elasticsearch/pull/83244) keyword, constant_keyword and flattened fields. 

Kibana would also like to support `ip` field type: https://github.com/elastic/kibana/issues/140266
Opening this issue to discuss if this is possible. 

I tried to workaround this limitation in Kibana using terms_agg for suggestions, but this also didn't work: 
https://github.com/elastic/kibana/issues/140266#issuecomment-1240828371



Note: there is a similar issue and some progress on _version_ type: https://github.com/elastic/elasticsearch/issues/83403



server/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java
return isDimension;
        }
        @Override
        public void validateMatchedRoutingPath() {
            if (false == isDimension) {
                throw new IllegalArgumentException(
                    "All fields that match routing_path must be keywords with [time_series_dimension: true] "
                        + "and without the [script] parameter. ["
                        + name()
                        + "] was not [time_series_dimension: true]."
                );
            }
            if (scriptValues != null) {
                throw new IllegalArgumentException(
                    "All fields that match routing_path must be keywords with [time_series_dimension: true] "
                        + "and without the [script] parameter. ["
                        + name()
                        + "] has a [script] parameter."
                );
            }
        }
    }
    private final boolean indexed;
    private final boolean hasDocValues;
    private final String indexOptions;
    private final FieldType fieldType;
    private final SimilarityProvider similarity;
    private final String normalizerName;
    private final boolean splitQueriesOnWhitespace;
    private final Script script;