Skip to content

Commit 92e0eb8

Browse files
authored
Don't perform additional KNN querying after timeout, fixes #14639 (#14640)
1 parent db6539c commit 92e0eb8

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

lucene/core/src/java/org/apache/lucene/search/AbstractKnnVectorQuery.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,10 @@ public Query rewrite(IndexSearcher indexSearcher) throws IOException {
109109
Map<Integer, TopDocs> perLeafResults = new HashMap<>();
110110
TopDocs topK = runSearchTasks(tasks, taskExecutor, perLeafResults, leafReaderContexts);
111111
int reentryCount = 0;
112-
if (topK.scoreDocs.length > 0 && perLeafResults.size() > 1) {
112+
if (topK.scoreDocs.length > 0
113+
&& perLeafResults.size() > 1
114+
// don't re-enter the search if we early terminated
115+
&& topK.totalHits.relation() == TotalHits.Relation.EQUAL_TO) {
113116
float minTopKScore = topK.scoreDocs[topK.scoreDocs.length - 1].score;
114117
TimeLimitingKnnCollectorManager knnCollectorManagerInner =
115118
new TimeLimitingKnnCollectorManager(

0 commit comments

Comments
 (0)