mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-12-05 05:18:52 +08:00
b74770b636
Signed-off-by: MrPresent-Han <chun.han@zilliz.com>
40 lines
1.4 KiB
Go
40 lines
1.4 KiB
Go
package segments
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/milvus-io/milvus/internal/proto/segcorepb"
|
|
|
|
"github.com/milvus-io/milvus-proto/go-api/schemapb"
|
|
"github.com/milvus-io/milvus/internal/proto/internalpb"
|
|
"github.com/milvus-io/milvus/internal/proto/querypb"
|
|
)
|
|
|
|
type internalReducer interface {
|
|
Reduce(context.Context, []*internalpb.RetrieveResults) (*internalpb.RetrieveResults, error)
|
|
}
|
|
|
|
func CreateInternalReducer(req *querypb.QueryRequest, schema *schemapb.CollectionSchema) internalReducer {
|
|
if req.GetReq().GetIsCount() {
|
|
return &cntReducer{}
|
|
} else if req.GetReq().GetIterationExtensionReduceRate() > 0 {
|
|
extendedLimit := req.GetReq().GetIterationExtensionReduceRate() * req.GetReq().Limit
|
|
return newExtensionLimitReducer(req, schema, extendedLimit)
|
|
}
|
|
return newDefaultLimitReducer(req, schema)
|
|
}
|
|
|
|
type segCoreReducer interface {
|
|
Reduce(context.Context, []*segcorepb.RetrieveResults) (*segcorepb.RetrieveResults, error)
|
|
}
|
|
|
|
func CreateSegCoreReducer(req *querypb.QueryRequest, schema *schemapb.CollectionSchema) segCoreReducer {
|
|
if req.GetReq().GetIsCount() {
|
|
return &cntReducerSegCore{}
|
|
} else if req.GetReq().GetIterationExtensionReduceRate() > 0 {
|
|
extendedLimit := req.GetReq().GetIterationExtensionReduceRate() * req.GetReq().Limit
|
|
return newExtensionLimitSegcoreReducer(req, schema, extendedLimit)
|
|
}
|
|
return newDefaultLimitReducerSegcore(req, schema)
|
|
}
|