Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
milvus
milvus
提交
81278f4a
M
milvus
项目概览
milvus
/
milvus
8 个月 前同步成功
通知
260
Star
22476
Fork
2472
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
81278f4a
编写于
7月 10, 2023
作者:
C
cai.zhang
提交者:
GitHub
7月 10, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix bug of missing JSON type when sorting retrieve results (#25412) (#25455)
Signed-off-by:
N
cai.zhang
<
cai.zhang@zilliz.com
>
上级
f75201bb
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
65 addition
and
0 deletion
+65
-0
internal/querynodev2/segments/mock_data.go
internal/querynodev2/segments/mock_data.go
+30
-0
internal/querynodev2/segments/result_sorter.go
internal/querynodev2/segments/result_sorter.go
+9
-0
internal/querynodev2/segments/result_test.go
internal/querynodev2/segments/result_test.go
+26
-0
未找到文件。
internal/querynodev2/segments/mock_data.go
浏览文件 @
81278f4a
...
...
@@ -1419,6 +1419,36 @@ func genFieldData(fieldName string, fieldID int64, fieldType schemapb.DataType,
},
FieldId
:
fieldID
,
}
case
schemapb
.
DataType_JSON
:
fieldData
=
&
schemapb
.
FieldData
{
Type
:
schemapb
.
DataType_JSON
,
FieldName
:
fieldName
,
Field
:
&
schemapb
.
FieldData_Scalars
{
Scalars
:
&
schemapb
.
ScalarField
{
Data
:
&
schemapb
.
ScalarField_JsonData
{
JsonData
:
&
schemapb
.
JSONArray
{
Data
:
fieldValue
.
([][]
byte
),
},
},
},
},
FieldId
:
fieldID
,
}
case
schemapb
.
DataType_Array
:
fieldData
=
&
schemapb
.
FieldData
{
Type
:
schemapb
.
DataType_Array
,
FieldName
:
fieldName
,
Field
:
&
schemapb
.
FieldData_Scalars
{
Scalars
:
&
schemapb
.
ScalarField
{
Data
:
&
schemapb
.
ScalarField_ArrayData
{
ArrayData
:
&
schemapb
.
ArrayArray
{
Data
:
fieldValue
.
([]
*
schemapb
.
ScalarField
),
},
},
},
},
FieldId
:
fieldID
,
}
default
:
log
.
Error
(
"not supported field type"
,
zap
.
String
(
"field type"
,
fieldType
.
String
()))
}
...
...
internal/querynodev2/segments/result_sorter.go
浏览文件 @
81278f4a
...
...
@@ -61,6 +61,15 @@ func swapFieldData(field *schemapb.FieldData, i int, j int) {
case
*
schemapb
.
ScalarField_StringData
:
data
:=
sd
.
StringData
.
Data
data
[
i
],
data
[
j
]
=
data
[
j
],
data
[
i
]
case
*
schemapb
.
ScalarField_JsonData
:
data
:=
sd
.
JsonData
.
Data
data
[
i
],
data
[
j
]
=
data
[
j
],
data
[
i
]
case
*
schemapb
.
ScalarField_ArrayData
:
data
:=
sd
.
ArrayData
.
Data
data
[
i
],
data
[
j
]
=
data
[
j
],
data
[
i
]
default
:
errMsg
:=
"undefined data type "
+
field
.
Type
.
String
()
panic
(
errMsg
)
}
case
*
schemapb
.
FieldData_Vectors
:
dim
:=
int
(
field
.
GetVectors
()
.
GetDim
())
...
...
internal/querynodev2/segments/result_test.go
浏览文件 @
81278f4a
...
...
@@ -558,6 +558,20 @@ func (suite *ResultSuite) TestSort() {
[]
float32
{
5
,
4
,
3
,
2
,
9
,
8
,
7
,
6
},
1
),
genFieldData
(
"binary vector field"
,
107
,
schemapb
.
DataType_BinaryVector
,
[]
byte
{
5
,
4
,
3
,
2
,
9
,
8
,
7
,
6
},
8
),
genFieldData
(
"json field"
,
108
,
schemapb
.
DataType_JSON
,
[][]
byte
{[]
byte
(
"{
\"
5
\"
: 5}"
),
[]
byte
(
"{
\"
4
\"
: 4}"
),
[]
byte
(
"{
\"
3
\"
: 3}"
),
[]
byte
(
"{
\"
2
\"
: 2}"
),
[]
byte
(
"{
\"
9
\"
: 9}"
),
[]
byte
(
"{
\"
8
\"
: 8}"
),
[]
byte
(
"{
\"
7
\"
: 7}"
),
[]
byte
(
"{
\"
6
\"
: 6}"
)},
1
),
genFieldData
(
"json field"
,
108
,
schemapb
.
DataType_Array
,
[]
*
schemapb
.
ScalarField
{
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
5
,
6
,
7
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
4
,
5
,
6
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
3
,
4
,
5
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
2
,
3
,
4
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
9
,
10
,
11
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
8
,
9
,
10
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
7
,
8
,
9
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
6
,
7
,
8
}}}},
},
1
),
},
}
...
...
@@ -573,6 +587,18 @@ func (suite *ResultSuite) TestSort() {
suite
.
Equal
([]
int32
{
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
},
result
.
FieldsData
[
5
]
.
GetScalars
()
.
GetIntData
()
.
Data
)
suite
.
InDeltaSlice
([]
float32
{
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
},
result
.
FieldsData
[
6
]
.
GetVectors
()
.
GetFloatVector
()
.
GetData
(),
10e-10
)
suite
.
Equal
([]
byte
{
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
},
result
.
FieldsData
[
7
]
.
GetVectors
()
.
GetBinaryVector
())
suite
.
Equal
([][]
byte
{[]
byte
(
"{
\"
2
\"
: 2}"
),
[]
byte
(
"{
\"
3
\"
: 3}"
),
[]
byte
(
"{
\"
4
\"
: 4}"
),
[]
byte
(
"{
\"
5
\"
: 5}"
),
[]
byte
(
"{
\"
6
\"
: 6}"
),
[]
byte
(
"{
\"
7
\"
: 7}"
),
[]
byte
(
"{
\"
8
\"
: 8}"
),
[]
byte
(
"{
\"
9
\"
: 9}"
)},
result
.
FieldsData
[
8
]
.
GetScalars
()
.
GetJsonData
()
.
GetData
())
suite
.
Equal
([]
*
schemapb
.
ScalarField
{
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
2
,
3
,
4
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
3
,
4
,
5
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
4
,
5
,
6
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
5
,
6
,
7
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
6
,
7
,
8
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
7
,
8
,
9
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
8
,
9
,
10
}}}},
{
Data
:
&
schemapb
.
ScalarField_IntData
{
IntData
:
&
schemapb
.
IntArray
{
Data
:
[]
int32
{
9
,
10
,
11
}}}},
},
result
.
FieldsData
[
9
]
.
GetScalars
()
.
GetArrayData
()
.
GetData
())
}
func
TestResult_MergeRequestCost
(
t
*
testing
.
T
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录