URL
/vector-service/multi-query
以上 URL省略了请求Header参数及编码等因素。
以上 URL中省略了访问应用的 host 地址。
以上URL中拼接的所有查询参数,请查看下方“查询参数”的参数定义、使用方式及样例。
请求协议
HTTP
请求方式
POST
支持格式
JSON
签名机制
可用以下方法计算签名(authorization)
参数 | 类型 | 描述 |
accessUserName | string | 用户名,可在实例详情页>网络信息查看 |
accessPassWord | string | 密码,可在实例详情页>网络信息修改 |
import com.aliyun.darabonba.encode.Encoder;
import com.aliyun.darabonbastring.Client;
public class GenerateAuthorization {
public static void main(String[] args) throws Exception {
String accessUserName = "username";
String accessPassWord = "password";
String realmStr = "" + accessUserName + ":" + accessPassWord + "";
String authorization = Encoder.base64EncodeToString(Client.toBytes(realmStr, "UTF-8"));
System.out.println(authorization);
}
}
authorization正确返回格式:
cm9vdDp******mdhbA==
使用HTTP请求设置authorization参数需加上Basic前缀
示例:(在header中)
authorization: Basic cm9vdDp******mdhbA==
请求body语法
SearchRequest:
参数名称
描述
默认值
类型
是否必须
tableName
查询的表名
无
string
是
indexName
查询的索引名 必须在SearchRequest中指定或者在每个Query中指定
无
string
否
queries
多向量列表
无
list[Query]
是
topK
最终返回的结果个数
100
int
否
includeVector
是否返回文档中的向量信息
false
bool
否
outputFields
需要返回值的字段列表
[]
list[string]
否
order
排序顺序, ASC:升序 DESC: 降序
ASC
string
否
filter
过滤表达式
""
string
否
sort
排序表达式
""
string
否
Query:
参数
描述
默认值
类型
是否必须
indexName
查询的索引名 必须在SearchRequest中指定或者在每个Query中指定
无
string
否
vector
查询的向量数据,多个向量可以平铺开
无
list[float]
否
vectorCount
vector字段中向量的个数
1
int
否
topK
返回个数
100
int
否
namespace
查询向量的空间
""
string
否
sparseData
查询的稀疏向量
默认无sparse部分
SparseData
否
weight
Query的权重
1.0
float
否
searchParams
向量查询参数
""
string
否
scoreThreshold
分数过滤, 使用欧式距离时,只返回小于scoreThreshold的结果。使用内积时,只返回大于scoreThreshold的结果
无
float
否
SparseData:
参数名称
描述
默认值
类型
是否必须
count
每个稀疏向量中包含的元素个数
只有一个稀疏向量时默认为indices长度
list[int]
否
indices
元素下标(需要从小到大排序)
无
list[int]
是
values
元素值(与下标一一对应)
无
list[float]
是
返回参数
返回结果:
字段名称
描述
类型
result
结果列表
list[Item]
totalCount
result中的个数
int
totalTime
引擎处理耗时,单位ms
float
errorCode
错误码,仅当发生错误时返回
int
errorMsg
错误信息,仅当发生错误时返回
string
item定义:
字段名称
描述
类型
score
距离分
float
fields
字段名称和对应的值
map<string, FieldType>
vector
向量值
list[float]
id
主键值,类型为所定义的字段类型
FieldType
namespace
向量所属的空间,如果设置了空间会返回该字段
string
示例
多命名空间
Body:
{
"tableName": "gist",
"indexName": "vec_index",
"queries": [
{
"vector": [
0.1,
0.2,
0.3
],
"namespace": "space_a"
},
{
"vector": [
0.4,
0.5,
0.6
],
"namespace": "space_b"
}
],
"topK": 3,
"includeVector": true
}
Response:
{
"result": [
{
"id": 1,
"score": 1.0508723258972169,
"vector": [
0.1,
0.2,
0.3
],
"namespace": "space_a"
},
{
"id": 2,
"score": 1.0329746007919312,
"vector": [
0.2,
0.2,
0.3
],
"namespace": "space_b"
},
{
"id": 3,
"score": 0.980593204498291,
"vector": [
0.3,
0.2,
0.3
],
"namespace": "space_a"
}
],
"totalCount": 3,
"totalTime": 2.943
}
多索引混合查询
Body:
{
"tableName": "gist",
"queries": [
{
"indexName": "content_vec",
"vector": [
0.1,
0.2,
0.3
],
"sparseData": {
"count": [
3
],
"indices": [
102,
405,
503
],
"values": [
0.32,
0.94,
0.25
]
},
"weight": 0.7,
"namespace": "space_a"
},
{
"indexName": "title_vec",
"vector": [
0.4,
0.5,
0.6
],
"sparseData": {
"count": [
2
],
"indices": [
203,
709
],
"values": [
0.98,
0.08
]
},
"weight": 0.3,
"namespace": "space_b"
}
],
"topK": 3,
"includeVector": true
}