Filtering with potentially large query specifications

The specification requires the filter query parameter to be reserved for filtering, and states that implementations SHOULD use this. Discussions here suggest that many developers interpret this to include filter[...] query parameters in building up complex queries. Others suggest query languages encoded into filter (e.g., Share/Propose a Filtering Strategy).

Has anyone dealt with issues related to very large queries that cannot be encoded into a query string? Many browsers limit the total length of the URL path + query string to around 2K.

What I don’t see in the specification is a way to provide very large payloads to define a query. GraphQL has been mentioned, but has the unfortunate trait that using a GET with a content entity is perhaps less well defined and supported than including a larger payload in a POST request.

I’d appreciate hearing from developers who are (or have) implemented solutions for queries that become larger than is appropriate for query strings.