Wondering about sanity checking queries before execution

We are building a front end for end users to analyze large amounts of data, which will result in some custom queries on the backend. I want to build in a sanity check so users don't end up needlessly querying extremely large datasets and taking down other, not-necessarily-ES parts of our system. Is there a way to preview before something is returned how large a result will be (kind of like a dry run of the query that does not return results, or only return if it meets some sanity threshold), or is "through" the only way out?