Skip to content

Commit d74e558

Browse files
committed
ensuring that current queries is decremented on knn failure
1 parent fb3eddd commit d74e558

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

server/src/main/java/org/elasticsearch/search/dfs/DfsPhase.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -199,14 +199,21 @@ static void executeKnnVectorQuery(SearchContext context) throws IOException {
199199
final long beforeQueryTime = System.nanoTime();
200200
var opsListener = context.indexShard().getSearchOperationListener();
201201
opsListener.onPreQueryPhase(context);
202-
for (int i = 0; i < knnSearch.size(); i++) {
203-
String knnField = knnVectorQueryBuilders.get(i).getFieldName();
204-
String knnNestedPath = searchExecutionContext.nestedLookup().getNestedParent(knnField);
205-
Query knnQuery = searchExecutionContext.toQuery(knnVectorQueryBuilders.get(i)).query();
206-
knnResults.add(singleKnnSearch(knnQuery, knnSearch.get(i).k(), context.getProfilers(), context.searcher(), knnNestedPath));
202+
try {
203+
for (int i = 0; i < knnSearch.size(); i++) {
204+
String knnField = knnVectorQueryBuilders.get(i).getFieldName();
205+
String knnNestedPath = searchExecutionContext.nestedLookup().getNestedParent(knnField);
206+
Query knnQuery = searchExecutionContext.toQuery(knnVectorQueryBuilders.get(i)).query();
207+
knnResults.add(singleKnnSearch(knnQuery, knnSearch.get(i).k(), context.getProfilers(), context.searcher(), knnNestedPath));
208+
}
209+
afterQueryTime = System.nanoTime();
210+
opsListener.onQueryPhase(context, afterQueryTime - beforeQueryTime);
211+
opsListener = null;
212+
} finally {
213+
if (opsListener != null) {
214+
opsListener.onFailedQueryPhase(context);
215+
}
207216
}
208-
afterQueryTime = System.nanoTime();
209-
opsListener.onQueryPhase(context, afterQueryTime - beforeQueryTime);
210217
context.dfsResult().knnResults(knnResults);
211218
}
212219

0 commit comments

Comments
 (0)