Some search API query parameters, such as `analyzer`, require the `q` query parameter. Similarly, the `suggest_mode` query parameter requires both the `suggest_field` and `suggest_text` query parameters.

If you attempt to use these parameters without the required parameters, Elasticsearch returns the following message:

```
request [/<index>/_search] contains unrecognized parameter: [<parameter>]
```

This suggests the parameter is invalid, which isn't true. It'd be more helpful to list the other required parameters.

Relates to #79674 and #79716.
server/src/main/java/org/elasticsearch/rest/action/RestActions.java
return parseTopLevelQueryBuilder(fieldName, requestParser);
    }
    /**
     * {@code NodesResponseRestBuilderListener} automatically translates any {@link BaseNodesResponse} (multi-node) response that is
     * {@link ToXContent}-compatible into a {@link RestResponse} with the necessary header info (e.g., "cluster_name").
     * <p>
     * This is meant to avoid a slew of anonymous classes doing (or worse):
     * <code>
     * client.admin().cluster().request(nodesRequest, new RestBuilderListener&lt;NodesResponse&gt;(channel) {
     *     public RestResponse buildResponse(NodesResponse response, XContentBuilder builder) throws Exception {
     *         return RestActions.nodesResponse(builder, ToXContent.EMPTY_PARAMS, response);
     *     }
     * });
     * </code>
     */
    public static class NodesResponseRestListener<NodesResponse extends BaseNodesResponse<?> & ToXContent> extends RestBuilderListener<
        NodesResponse> {
        public NodesResponseRestListener(RestChannel channel) {
            super(channel);
        }
        @Override
        public RestResponse buildResponse(NodesResponse response, XContentBuilder builder) throws Exception {
            return RestActions.nodesResponse(builder, channel.request(), response);
        }
    }
    /**
     * Parses a top level query including the query element that wraps it
     */
    private static QueryBuilder parseTopLevelQueryBuilder(String fieldName, XContentParser parser) {
        try {