fix: fix hybrid search panic when has multi shard (#30464)

/kind bug
issue:#30457
Signed-off-by: xige-16 <xi.ge@zilliz.com>

Signed-off-by: xige-16 <xi.ge@zilliz.com>
pull/30479/head
xige-16 2024-02-02 17:25:12 +08:00 committed by GitHub
parent 02de84239d
commit 05ebe7b6ae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 4 additions and 3 deletions

View File

@ -222,9 +222,6 @@ func (t *hybridSearchTask) PreExecute(ctx context.Context) error {
}
func (t *hybridSearchTask) hybridSearchShard(ctx context.Context, nodeID int64, qn types.QueryNodeClient, channel string) error {
for _, searchTask := range t.searchTasks {
t.HybridSearchRequest.Reqs = append(t.HybridSearchRequest.Reqs, searchTask.SearchRequest)
}
hybridSearchReq := typeutil.Clone(t.HybridSearchRequest)
hybridSearchReq.GetBase().TargetID = nodeID
if t.partitionKeyMode {
@ -272,6 +269,10 @@ func (t *hybridSearchTask) Execute(ctx context.Context) error {
tr := timerecord.NewTimeRecorder(fmt.Sprintf("proxy execute hybrid search %d", t.ID()))
defer tr.CtxElapse(ctx, "done")
for _, searchTask := range t.searchTasks {
t.HybridSearchRequest.Reqs = append(t.HybridSearchRequest.Reqs, searchTask.SearchRequest)
}
t.resultBuf = typeutil.NewConcurrentSet[*querypb.HybridSearchResult]()
err := t.lb.Execute(ctx, CollectionWorkLoad{
db: t.request.GetDbName(),