mirror of https://github.com/milvus-io/milvus.git
fix: keep inner topK to avoid exceeding efSearch (#36284)
issue: #https://github.com/milvus-io/milvus/issues/36243 Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>pull/36310/head
parent
763fd0dfc5
commit
dcd904d2fa
|
|
@ -70,11 +70,7 @@ func parseSearchInfo(searchParamsPair []*commonpb.KeyValuePair, schema *schemapb
|
||||||
}
|
}
|
||||||
topK = externalLimit
|
topK = externalLimit
|
||||||
} else {
|
} else {
|
||||||
if topKInParam < externalLimit {
|
topK = topKInParam
|
||||||
topK = externalLimit
|
|
||||||
} else {
|
|
||||||
topK = topKInParam
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2259,7 +2259,7 @@ func TestTaskSearch_parseSearchInfo(t *testing.T) {
|
||||||
info, offset, err := parseSearchInfo(offsetParam, nil, rank)
|
info, offset, err := parseSearchInfo(offsetParam, nil, rank)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.NotNil(t, info)
|
assert.NotNil(t, info)
|
||||||
assert.Equal(t, externalLimit, info.GetTopk())
|
assert.Equal(t, int64(10), info.GetTopk())
|
||||||
assert.Equal(t, int64(0), offset)
|
assert.Equal(t, int64(0), offset)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -2446,13 +2446,13 @@ func TestTaskSearch_parseSearchInfo(t *testing.T) {
|
||||||
schema := &schemapb.CollectionSchema{
|
schema := &schemapb.CollectionSchema{
|
||||||
Fields: fields,
|
Fields: fields,
|
||||||
}
|
}
|
||||||
info, _, err := parseSearchInfo(normalParam, schema, false)
|
info, _, err := parseSearchInfo(normalParam, schema, nil)
|
||||||
assert.Nil(t, info)
|
assert.Nil(t, info)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.True(t, strings.Contains(err.Error(), "exceeds configured max group size"))
|
assert.True(t, strings.Contains(err.Error(), "exceeds configured max group size"))
|
||||||
|
|
||||||
resetSearchParamsValue(normalParam, GroupSizeKey, `10`)
|
resetSearchParamsValue(normalParam, GroupSizeKey, `10`)
|
||||||
info, _, err = parseSearchInfo(normalParam, schema, false)
|
info, _, err = parseSearchInfo(normalParam, schema, nil)
|
||||||
assert.NotNil(t, info)
|
assert.NotNil(t, info)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue