利用restful api来实现faiss的索引操作。
请求地址:http://localhost:2344/add
请求方式:post
请求类型:application/json
输入参数:
是否必选 | 参数名 | 类型 | 参数说明 |
---|---|---|---|
必选 | ntotal | Int |
需要添加的向量个数 |
必选 | data | Object |
向量唯一标识及对应特征向量 |
必选 | data.ids | Array<Int> |
特征向量的id列表 |
必选 | data.vectors | Array<Int> |
特征向量数组 |
请求示例:
{
"ntotal": 3,
"data": {
"ids": [1,2,3],
"vectors": [[0.12,0.18,...,0.19],
[0.12,0.18,...,0.19],
[0.12,0.18,...,0.19]]
}
}
返回参数:
返回类型:JSON
参数名 | 类型 | 参数说明 |
---|---|---|
time_used | Int |
整个请求所花费的时间,单位为毫秒 |
rtn | Int |
返回值,0表示请求成功,非0表示失败 |
message | String |
请求结果描述信息 |
返回示例:
{"time_used": 99, "rtn": 0, "message": "vectors added successfully"}
请求地址:http://localhost:2344/search
请求方式:post
请求类型:application/json
输入参数:
是否必选 | 参数名 | 类型 | 参数说明 |
---|---|---|---|
必选 | qtotal | Int |
需要查找的向量个数 |
必选 | topk | Int |
需要查找的近邻数 |
必选 | queries | Array<Array<float>> |
待查找的特征向量列表 |
请求示例:
{
"qtotal": 3,
"topk":4,
"queries":[ [0.12,0.18,...,0.19],
[0.12,0.18,...,0.19],
[0.12,0.18,...,0.19]]
}
返回参数:
返回类型:JSON
参数名 | 类型 | 参数说明 |
---|---|---|
time_used | Int |
整个请求所花费的时间,单位为毫秒 |
rtn | Int |
返回值,0表示请求成功,非0表示失败 |
message | String |
请求结果描述信息 |
rtopk | Int |
实际的topk的大小,小于等于输入的topk |
results | Object |
查询的结果 |
results.distances | Array<Array<float>> |
当前待查向量的rtopk个最近邻的距离 |
results.lables | Array<Array<int>> |
当前待查向量的rtopk个最近邻的向量的id |
返回示例:
{
"time_used": 23,
"rtn": 0,
"rtopk": 4,
"results": {
"distances": [[0.9, 0.8, 0.7,0.6],
[0.92, 0.82, 0.72,0.62],
[0.93, 0.83, 0.73,0.63]],
"lables": [[1,2,4],
[5,6,7],
[9,19,20]]
},
"message": "search successfully"
}
请求地址:http://localhost:2344/del
请求方式:post
请求类型:application/json
输入参数:
是否必选 | 参数名 | 类型 | 参数说明 |
---|---|---|---|
必选 | ids | Array<int> |
需要删除的向量的id列表 |
请求示例:
{"ids": [1,2,3]}
返回参数:
返回类型:JSON
参数名 | 类型 | 参数说明 |
---|---|---|
time_used | Int |
整个请求所花费的时间,单位为毫秒 |
rtn | Int |
返回值,0表示请求成功,非0表示失败 |
message | String |
请求结果描述信息 |
返回示例:
{"time_used": 0, "rtn": 0, "message": "delete successfully"}
请求地址:http://localhost:2344/reset
请求方式:get
请求类型:application/json
输入参数:
空
返回参数:
返回类型:JSON
参数名 | 类型 | 参数说明 |
---|---|---|
time_used | Int |
整个请求所花费的时间,单位为毫秒 |
rtn | Int |
返回值,0表示请求成功,非0表示失败 |
message | String |
请求结果描述信息 |
返回示例:
{"time_used": 0, "rtn": 0, "message": "reset successfully"}
请求地址:http://localhost:2344/vector
请求方式:get
请求类型:application/json
输入参数:
是否必选 | 参数名 | 类型 | 参数说明 |
---|---|---|---|
必选 | date | string |
需要读取哪一天的所有向量,eg. "2019-01-17" |
返回参数:
返回类型:bytes[]
返回索引文件的bytes数组
rtn | 说明 |
---|---|
-1 | 输入参数的长度不匹配 |
-2 | 输入的向量的维度和系统维度不一致 |
-3 | 调用faiss出错 |