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/test/java/org/elasticsearch/rest/action/search/RestSearchActionTests.java
Map.of("Content-Type", contentTypeHeader, "Accept", contentTypeHeader)
        ).withMethod(RestRequest.Method.GET).withPath("/some_index/_search").withParams(params).build();
        dispatchRequest(request);
        assertCriticalWarnings(RestSearchAction.TYPES_DEPRECATION_MESSAGE);
    }
    /**
     * The "enable_fields_emulation" flag on search requests is a no-op but should not raise an error
     */
    public void testEnableFieldsEmulationNoErrors() throws Exception {
        Map<String, String> params = new HashMap<>();
        params.put("enable_fields_emulation", "true");
        RestRequest request = new FakeRestRequest.Builder(xContentRegistry()).withHeaders(
            Map.of("Content-Type", contentTypeHeader, "Accept", contentTypeHeader)
        ).withMethod(RestRequest.Method.GET).withPath("/some_index/_search").withParams(params).build();
        action.handleRequest(request, new FakeRestChannel(request, false, 1), verifyingClient);
    }
    /**
     * Using an illegal search type on the request should throw an error
     */
    public void testIllegalSearchType() {
        Map<String, String> params = new HashMap<>();
        params.put("search_type", "some_search_type");
        RestRequest request = new FakeRestRequest.Builder(xContentRegistry()).withHeaders(
            Map.of("Content-Type", contentTypeHeader, "Accept", contentTypeHeader)
        ).withMethod(RestRequest.Method.GET).withPath("/some_index/_search").withParams(params).build();
        Exception ex = expectThrows(IllegalArgumentException.class, () -> action.prepareRequest(request, verifyingClient));
        assertEquals("No search type for [some_search_type]", ex.getMessage());
    }
}