### Description

In [siren federate](https://siren.io/federate/) we extend the `SearchService` to create `SearchContext` instances. In 8.8 this is not possible anymore because the `createContext` method takes the `ResultsType` enum which is package private.

https://github.com/elastic/elasticsearch/blob/b640c217cccab67dce7d954bc92b6b519c102b16/server/src/main/java/org/elasticsearch/search/SearchService.java#L992-L998

In order to be able to keep on calling that method from another package, the visibility of the enum `ResultsType` should be increased to `protected`.
server/src/main/java/org/elasticsearch/search/SearchService.java
QueryBuilder queryBuilder = request.source().query();
            canMatch = aliasFilterCanMatch && queryBuilder instanceof MatchNoneQueryBuilder == false;
        } else {
            
            canMatch = aliasFilterCanMatch;
        }
        return canMatch;
    }
    /**
     * Returns true iff the given search source builder can be early terminated by rewriting to a match none query. Or in other words
     * if the execution of the search request can be early terminated without executing it. This is for instance not possible if
     * a global aggregation is part of this request or if there is a suggest builder present.
     */
    public static boolean canRewriteToMatchNone(SearchSourceBuilder source) {
        if (source == null || source.query() == null || source.query() instanceof MatchAllQueryBuilder || source.suggest() != null) {
            return false;
        }
        AggregatorFactories.Builder aggregations = source.aggregations();
        return aggregations == null || aggregations.mustVisitAllDocs() == false;
    }
    @SuppressWarnings({ "rawtypes", "unchecked" })
    private void rewriteAndFetchShardRequest(IndexShard shard, ShardSearchRequest request, ActionListener<ShardSearchRequest> listener) {
        ActionListener<Rewriteable> actionListener = ActionListener.wrap(r -> {
            if (request.readerId() != null) {
                listener.onResponse(request);
            } else {
                
                shard.awaitShardSearchActive(b -> listener.onResponse(request));
            }
        }, listener::onFailure);