When a query doesn’t require faceting, the engine is optimized to return early when enough "best" hits have been retrieved (more than 10,000 hits with perfect match and perfect proximity).
In that case the index is not scanned entirely so exhaustiveNbHits
is set to false and nbHits
is estimated.
When faceting is required, the entire index has to be scanned in order to be able to count facets, so exhaustiveNbHits
is true.