mirror of https://github.com/milvus-io/milvus.git
fix: ignore growing option is lost at hibridsearch (#39900)
issue: #39892 pr: #39799 Signed-off-by: chyezh <chyezh@outlook.com>pull/39926/head
parent
3a951f2160
commit
56c1a8d462
|
@ -2747,3 +2747,17 @@ func (t *ListResourceGroupsTask) Execute(ctx context.Context) error {
|
|||
func (t *ListResourceGroupsTask) PostExecute(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// isIgnoreGrowing is used to check if the request should ignore growing
|
||||
func isIgnoreGrowing(params []*commonpb.KeyValuePair) (bool, error) {
|
||||
for _, kv := range params {
|
||||
if kv.GetKey() == IgnoreGrowingKey {
|
||||
ignoreGrowing, err := strconv.ParseBool(kv.GetValue())
|
||||
if err != nil {
|
||||
return false, errors.New("parse ignore growing field failed")
|
||||
}
|
||||
return ignoreGrowing, nil
|
||||
}
|
||||
}
|
||||
return false, nil
|
||||
}
|
||||
|
|
|
@ -365,18 +365,9 @@ func (t *queryTask) PreExecute(ctx context.Context) error {
|
|||
log.Debug("Validate partition names.")
|
||||
|
||||
// fetch search_growing from query param
|
||||
var ignoreGrowing bool
|
||||
for i, kv := range t.request.GetQueryParams() {
|
||||
if kv.GetKey() == IgnoreGrowingKey {
|
||||
ignoreGrowing, err = strconv.ParseBool(kv.Value)
|
||||
if err != nil {
|
||||
return errors.New("parse search growing failed")
|
||||
}
|
||||
t.request.QueryParams = append(t.request.GetQueryParams()[:i], t.request.GetQueryParams()[i+1:]...)
|
||||
break
|
||||
}
|
||||
if t.RetrieveRequest.IgnoreGrowing, err = isIgnoreGrowing(t.request.GetQueryParams()); err != nil {
|
||||
return err
|
||||
}
|
||||
t.RetrieveRequest.IgnoreGrowing = ignoreGrowing
|
||||
|
||||
queryParams, err := parseQueryParams(t.request.GetQueryParams())
|
||||
if err != nil {
|
||||
|
|
|
@ -193,19 +193,9 @@ func (t *searchTask) PreExecute(ctx context.Context) error {
|
|||
}
|
||||
t.SearchRequest.Nq = nq
|
||||
|
||||
var ignoreGrowing bool
|
||||
// parse common search params
|
||||
for i, kv := range t.request.GetSearchParams() {
|
||||
if kv.GetKey() == IgnoreGrowingKey {
|
||||
ignoreGrowing, err = strconv.ParseBool(kv.GetValue())
|
||||
if err != nil {
|
||||
return errors.New("parse search growing failed")
|
||||
}
|
||||
t.request.SearchParams = append(t.request.GetSearchParams()[:i], t.request.GetSearchParams()[i+1:]...)
|
||||
break
|
||||
}
|
||||
if t.SearchRequest.IgnoreGrowing, err = isIgnoreGrowing(t.request.SearchParams); err != nil {
|
||||
return err
|
||||
}
|
||||
t.SearchRequest.IgnoreGrowing = ignoreGrowing
|
||||
|
||||
outputFieldIDs, err := getOutputFieldIDs(t.schema, t.request.GetOutputFields())
|
||||
if err != nil {
|
||||
|
@ -369,6 +359,14 @@ func (t *searchTask) initAdvancedSearchRequest(ctx context.Context) error {
|
|||
return err
|
||||
}
|
||||
|
||||
ignoreGrowing := t.SearchRequest.IgnoreGrowing
|
||||
if !ignoreGrowing {
|
||||
// fetch ignore_growing from sub search param if not set in search request
|
||||
if ignoreGrowing, err = isIgnoreGrowing(subReq.GetSearchParams()); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
internalSubReq := &internalpb.SubSearchRequest{
|
||||
Dsl: subReq.GetDsl(),
|
||||
PlaceholderGroup: subReq.GetPlaceholderGroup(),
|
||||
|
@ -381,6 +379,7 @@ func (t *searchTask) initAdvancedSearchRequest(ctx context.Context) error {
|
|||
MetricType: queryInfo.GetMetricType(),
|
||||
GroupByFieldId: t.rankParams.GetGroupByFieldId(),
|
||||
GroupSize: t.rankParams.GetGroupSize(),
|
||||
IgnoreGrowing: ignoreGrowing,
|
||||
}
|
||||
|
||||
internalSubReq.FieldId = queryInfo.GetQueryFieldId()
|
||||
|
|
|
@ -390,7 +390,7 @@ func (sd *shardDelegator) Search(ctx context.Context, req *querypb.SearchRequest
|
|||
Nq: subReq.GetNq(),
|
||||
Topk: subReq.GetTopk(),
|
||||
MetricType: subReq.GetMetricType(),
|
||||
IgnoreGrowing: req.GetReq().GetIgnoreGrowing(),
|
||||
IgnoreGrowing: subReq.GetIgnoreGrowing(),
|
||||
Username: req.GetReq().GetUsername(),
|
||||
IsAdvanced: false,
|
||||
GroupByFieldId: subReq.GetGroupByFieldId(),
|
||||
|
|
|
@ -98,6 +98,7 @@ message SubSearchRequest {
|
|||
int64 group_by_field_id = 10;
|
||||
int64 group_size = 11;
|
||||
int64 field_id = 12;
|
||||
bool ignore_growing = 13;
|
||||
}
|
||||
|
||||
message SearchRequest {
|
||||
|
@ -129,6 +130,7 @@ message SearchRequest {
|
|||
int64 field_id = 25;
|
||||
bool is_topk_reduce = 26;
|
||||
bool is_recall_evaluation = 27;
|
||||
bool is_iterator = 28;
|
||||
}
|
||||
|
||||
message SubSearchResults {
|
||||
|
@ -194,6 +196,7 @@ message RetrieveRequest {
|
|||
bool reduce_stop_for_best = 16; //deprecated
|
||||
int32 reduce_type = 17;
|
||||
common.ConsistencyLevel consistency_level = 18;
|
||||
bool is_iterator = 19;
|
||||
}
|
||||
|
||||
|
||||
|
@ -324,7 +327,7 @@ message ImportFile {
|
|||
}
|
||||
|
||||
message ImportRequestInternal {
|
||||
int64 dbID = 1;
|
||||
int64 dbID = 1 [deprecated=true];
|
||||
int64 collectionID = 2;
|
||||
string collection_name = 3;
|
||||
repeated int64 partitionIDs = 4;
|
||||
|
@ -332,6 +335,8 @@ message ImportRequestInternal {
|
|||
schema.CollectionSchema schema = 6;
|
||||
repeated ImportFile files = 7;
|
||||
repeated common.KeyValuePair options = 8;
|
||||
uint64 data_timestamp = 9;
|
||||
int64 jobID = 10;
|
||||
}
|
||||
|
||||
message ImportRequest {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue