The UH now detects that parts of the query are not understood by it.
When found, it highlights more safely/reliably.
Fixes compatibility with complex and surround query parsers.
(cherry picked from commit 54cc70127b22083198f1c44f83ccf4cdf769ac77)
Today if an executor was added to the IndexSearcher it's impossible to
clone the searcher with it's cache, similarty and caching policy since
the executor is not exposed. This adds a simple getter to make cloning
easier.
an (erroneous) assigment to useSsl was left in the constructor after the (intended) conditional assigment, rendering the conditional logic useless
(cherry picked from commit c8c2f2f25b28da694fae88868b12347bc5a2393c)
In order to simplify testing this change moves to use the Executor
interface instead of ExecutorService. This change also simplifies
customizing execute methods for use-cases that need to add additional
logic for forking to new threads. This change also adds a test for
the optimization added in LUCENE-8865.
This change is fully backwards compatible since ExecutorService implements
Executor.
Today we don't utilize the incoming thread for a search when IndexSearcher
has an executor. This thread is only idling but can be used to execute a search
once all other collectors are dispatched.
FileSwitchDirectory fails if the tmp file are not in the same directory
as the file it's renamed to. This is correct behavior but breaks with
tmp files used with index sorting. This change tries best effort to find
the right extension directory if the file ends with `.tmp`
this test already uses waitForState (frequently via verifyReplicaStatus) so there is no reason to include CPU/network/ZK intensive infinite loop checks looking for udpated cluster state
(cherry picked from commit 3030ea9d9418626ffb3c3bbd174aee344a778b25)
Also add Predicate<DocCollection> equivilents for callers that don't care about liveNodes.
(cherry picked from commit 5a974860fa83408a86ca64b417f3111b037da7eb)