From a27a2e8021c3b97facf898c6d23ff82ec7a7247b Mon Sep 17 00:00:00 2001 From: Jiquan Long Date: Tue, 21 May 2024 14:07:45 +0800 Subject: [PATCH] fix: try best to get enough query results (#33178) (#33179) issue: https://github.com/milvus-io/milvus/issues/33137 pr: #33178 Signed-off-by: longjiquan --- internal/proxy/task_query.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/proxy/task_query.go b/internal/proxy/task_query.go index 618805a4f9..18abb6ed05 100644 --- a/internal/proxy/task_query.go +++ b/internal/proxy/task_query.go @@ -633,7 +633,7 @@ func reduceRetrieveResults(ctx context.Context, retrieveResults []*internalpb.Re var retSize int64 maxOutputSize := paramtable.Get().QuotaConfig.MaxOutputSize.GetAsInt64() - for j := 0; j < loopEnd; j++ { + for j := 0; j < loopEnd; { sel, drainOneResult := typeutil.SelectMinPK(retrieveLimit, validRetrieveResults, cursors) if sel == -1 || (reduceStopForBest && drainOneResult) { break @@ -643,6 +643,7 @@ func reduceRetrieveResults(ctx context.Context, retrieveResults []*internalpb.Re if _, ok := idSet[pk]; !ok { retSize += typeutil.AppendFieldData(ret.FieldsData, validRetrieveResults[sel].GetFieldsData(), cursors[sel]) idSet[pk] = struct{}{} + j++ } else { // primary keys duplicate skipDupCnt++