### 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 (KeywordFieldType) super.fieldType();
    }
    @Override
    protected void parseCreateField(DocumentParserContext context) throws IOException {
        final String value = context.parser().textOrNull();
        indexValue(context, value == null ? fieldType().nullValue : value);
    }
    @Override
    protected void indexScriptValues(
        SearchLookup searchLookup,
        LeafReaderContext readerContext,
        int doc,
        DocumentParserContext documentParserContext
    ) {
        this.fieldType().scriptValues.valuesForDoc(searchLookup, readerContext, doc, value -> indexValue(documentParserContext, value));
    }
    private void indexValue(DocumentParserContext context, String value) {
        if (value == null) {
            return;
        }
        if (value.length() > fieldType().ignoreAbove()) {
            context.addIgnoredField(name());
            if (storeIgnored) {
                
                context.doc().add(new StoredField(originalName(), new BytesRef(value)));
            }
            return;
        }
        value = normalizeValue(fieldType().normalizer(), name(), value);