From ae66446f1643bf46a6ff56f3f82f3a786a770905 Mon Sep 17 00:00:00 2001 From: yukun Date: Mon, 28 Jun 2021 12:16:13 +0800 Subject: [PATCH] Fix issue-5992 (#6158) Signed-off-by: fishpenguin --- internal/proxy/task.go | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/internal/proxy/task.go b/internal/proxy/task.go index b48bbd900e..d1eb2bd186 100644 --- a/internal/proxy/task.go +++ b/internal/proxy/task.go @@ -1294,10 +1294,13 @@ func (st *SearchTask) PreExecute(ctx context.Context) error { if err != nil { return errors.New("invalid expression: " + st.query.Dsl) } - - for _, field := range schema.Fields { - for _, name := range st.query.OutputFields { + for _, name := range st.query.OutputFields { + for _, field := range schema.Fields { if field.Name == name { + if field.DataType == schemapb.DataType_BinaryVector || field.DataType == schemapb.DataType_FloatVector { + return errors.New("Search doesn't support vector field as output_fields") + } + st.SearchRequest.OutputFieldsId = append(st.SearchRequest.OutputFieldsId, field.FieldID) plan.OutputFieldIds = append(plan.OutputFieldIds, field.FieldID) } @@ -1867,11 +1870,13 @@ func (st *SearchTask) PostExecute(ctx context.Context) error { if err != nil { return err } - for k, fieldName := range st.query.OutputFields { - for _, field := range schema.Fields { - if field.Name == fieldName { - st.result.Results.FieldsData[k].FieldName = fieldName - st.result.Results.FieldsData[k].Type = field.DataType + if len(st.query.OutputFields) != 0 { + for k, fieldName := range st.query.OutputFields { + for _, field := range schema.Fields { + if field.Name == fieldName { + st.result.Results.FieldsData[k].FieldName = fieldName + st.result.Results.FieldsData[k].Type = field.DataType + } } } }