Description
There are various reasons today why a search could fail to produce all of the required results:
- A failure to execute within a
timeout
associated with the search - Missing shards (ie a red index)
- Failed shards - e.g. an error parsing the query
Until now elasticsearch has attempted to to return partial results under these circumstances and report the partial status in flags in the search response e.g. timed_out:true
.
Sadly, today we expect most client applications will pay little attention to these flags and present partial results to clients with no indication that the results are incomplete.
This issue proposes we fix this by providing a new cluster level setting called default_allow_partial_results
flag which is set to false and will throw an error to the client application in the event of any of the above 3 conditions. This can be overridden in individual search requests using a allow_partial_results
flag.