From 6695c6d0a35d5694dc624e2c0eca53de8d2d83cb Mon Sep 17 00:00:00 2001 From: Gao Date: Wed, 31 Jul 2024 18:59:49 +0800 Subject: [PATCH] enhance: add channel num for queryHook optimization (#35104) At most cases, data in each channel is almost evenly distributed, we could utilize the channel num info to optimize searh param in queryHook Signed-off-by: chasingegg --- internal/querynodev2/optimizers/query_hook.go | 3 +++ pkg/common/common.go | 1 + 2 files changed, 4 insertions(+) diff --git a/internal/querynodev2/optimizers/query_hook.go b/internal/querynodev2/optimizers/query_hook.go index 275abfd6a8..0ef1307f8f 100644 --- a/internal/querynodev2/optimizers/query_hook.go +++ b/internal/querynodev2/optimizers/query_hook.go @@ -66,6 +66,9 @@ func OptimizeSearchParams(ctx context.Context, req *querypb.SearchRequest, query common.WithOptimizeKey: paramtable.Get().AutoIndexConfig.EnableOptimize.GetAsBool(), common.CollectionKey: req.GetReq().GetCollectionID(), } + if withFilter && channelNum > 1 { + params[common.ChannelNumKey] = channelNum + } err := queryHook.Run(params) if err != nil { log.Warn("failed to execute queryHook", zap.Error(err)) diff --git a/pkg/common/common.go b/pkg/common/common.go index b5a0bf3cb8..284baa04e3 100644 --- a/pkg/common/common.go +++ b/pkg/common/common.go @@ -109,6 +109,7 @@ const ( SegmentNumKey = "segment_num" WithFilterKey = "with_filter" DataTypeKey = "data_type" + ChannelNumKey = "channel_num" WithOptimizeKey = "with_optimize" CollectionKey = "collection"