### 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
private final Map<String, Highlighter> highlighters;
    public HighlightPhase(Map<String, Highlighter> highlighters) {
        this.highlighters = highlighters;
    }
    @Override
    public FetchSubPhaseProcessor getProcessor(FetchContext context) {
        if (context.highlight() == null) {
            return null;
        }
        return getProcessor(context, context.highlight(), context.parsedQuery().query());
    }
    public FetchSubPhaseProcessor getProcessor(FetchContext context, SearchHighlightContext highlightContext, Query query) {
        Map<String, Object> sharedCache = new HashMap<>();
        Map<String, Function<HitContext, FieldHighlightContext>> contextBuilders = contextBuilders(
            context,
            highlightContext,
            query,
            sharedCache