Hard timeout is implemented by us client side.
Soft timeout is implemented too, but currently not tested because:
Timeout resolution is very low, so it's uneffective unless the query takes a really long time to execute.
We should find a way to test it regardless, for example by configuring Elasticsearch to use a higher time resolution (is it even possible?), or by crafting a query that we know will take forever to execute (how?).
See full discussion here: https://github.com/hibernate/hibernate-search/pull/2158#commitcomment-36306546