I have a use case where I need to match documents against a couple of constraints, but neither the bool query nor the dis max query nor the multi match fits the use case.
Contrary to the bool query processing can and must stop the moment a constraint is satisfied, just like with the OR operator in regular programming languages. The document must then get the boost from the constraint that was satisfied.
All of the query types mentioned above in some way go though all the contraints packed within them, but I am happy with the first constraint being met, and the rest is thus a waste of CPU cycles.