### Elasticsearch Version

8.1.1.

### Installed Plugins

non

### Java Version

_bundled_

### OS Version

ESS

### Problem Description

When searching for any term in Kibana the highlighting works on any field type except `match_only_text` which has become the default field type in ~7.14 for all of the beats and Elastic Agent integrations.
E.g. here it does not work:
![image](https://user-images.githubusercontent.com/12175559/160823534-7cad2e0e-b898-4a15-9376-1c2993d261bb.png)
E.g. on 7.17 using text and keyword fields:
![image](https://user-images.githubusercontent.com/12175559/160823810-a6024e92-f062-4e39-a399-41c5d087fcdd.png)

Discussed this with @romseygeek already. seems that the highlighter is not capeable of dealing with the specialized match_only_text field type.


### Steps to Reproduce

Index something using a `match_only_text` field.
Run a search on it. It should be highlighted.



### Logs (if relevant)

_No response_
server/src/main/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightPhase.java
throw new IllegalArgumentException("unknown highlighter type [" + highlighterType + "] for the field [" + field.field() + "]");
        }
        return highlighter;
    }
    private Map<String, Function<HitContext, FieldHighlightContext>> contextBuilders(
        FetchContext context,
        SearchHighlightContext highlightContext,
        Query query,
        Map<String, Object> sharedCache
    ) {
        Map<String, Function<HitContext, FieldHighlightContext>> builders = new LinkedHashMap<>();
        for (SearchHighlightContext.Field field : highlightContext.fields()) {
            Highlighter highlighter = getHighlighter(field);
            Collection<String> fieldNamesToHighlight = context.getSearchExecutionContext().getMatchingFieldNames(field.field());
            if (highlightContext.forceSource(field)) {
                if (context.getSearchExecutionContext().isSourceEnabled() == false) {
                    throw new IllegalArgumentException("source is forced for fields " + fieldNamesToHighlight + " but _source is disabled");
                }
            }
            boolean fieldNameContainsWildcards = field.field().contains("*");
            for (String fieldName : fieldNamesToHighlight) {
                MappedFieldType fieldType = context.getSearchExecutionContext().getFieldType(fieldName);