rebuild

最近更新时间:2024-07-03 20:33:22

我的收藏

功能介绍

/index/rebuild 接口用于重建指定 Base 类数据库 Collection 的所有索引,清除无用的索引数据,修复损坏的索引数据,优化索引结构,改善性能。

接口约束

注意:
索引重建过程中 Colletion 禁止写入、读取。rebuild 索引需要新的内存来构建索引。

请求示例

说明:
腾讯云向量数据库(Tencent Cloud VectorDB)通过 HTTP 协议进行数据写入和查询等操作,使用 /index/rebuild 接口之前,您需要做相关准备事项,并了解 /index/rebuild 接口的请求方式与 URL 拼接地址。具体信息,请参见 使用前阅读
注意:
如下示例可直接复制,在 CVM 运行之前,您需在文本编辑器将 api_key=A5VOgsMpGWJhUI0WmUbY******************** 与 10.0.X.X 依据实际情况进行替换。
curl -i -X POST \\
-H 'Content-Type: application/json' \\
-H 'Authorization: Bearer account=root&api_key=A5VOgsMpGWJhUI0WmUbY********************' \\
http://10.0.X.X:80/index/rebuild \\
-d '{
"database": "db-test",
"collection": "book-vector",
"dropBeforeRebuild": true,
"throttle": 1
}'

请求参数

参数
是否必选
参数含义
配置方法及要求
database
配置需重建索引的 Database 名称。
使用 /database/list 获取集群中的数据库列表,复制需重建索引的集合所属的数据库名。
collection
指定需 Collection 的重建索引的 Collection 名称。
使用 /collection/list 获取指定数据库名下的 Collection 列表,复制需重建索引的集合名。
dropBeforeRebuild
标识在重建索引时,是否需先删除旧索引再重建新索引。
说明:
重建索引需要占用额外的内存空间,数据量越大,消耗的内存空间越大。在重建索引之前,您需根据实际资源情况选择是否需先删除旧索引再重建,避免引起内存占满而阻塞业务正常运行。
取值如下所示:
true:重建之前,先删除旧索引再重建索引。
说明:
内存资源不足时,可先删除旧索引,在新索引还没有创建完成之前,该表无法正常读写。
false:重建之前,不删除旧索引,创建新索引完成之后再删除旧索引。默认为 false
说明:
内存资源足够的情况下,可不删除旧索引。在新索引还没有创建完成之前,该表可读数据,禁止写入数据。
throttle
标识是否限制构建索引的单节点 CPU 核数。
说明:
重建索引会消耗 CPU 资源,为防止资源打满影响写入或者检索等操作,请根据业务实际配置重建索引的 CPU 核数。默认为限制CPU 核数为 1。
取值如下所示:
0:不限制 CPU 核数。
1:CPU 核数为 1。



响应消息

HTTP 响应消息体是服务器返回给客户端的数据,通常包含了请求的结果或者所请求的资源。/index/rebuild 接口返回的状态码以及相关信息,如下表所示。
状态码
含义
响应信息
200
创建成功
{ "code": 0, "msg": "operation success" }
400
创建失败
{ "code": 1, "msg": "operation failed, reason...." }

相关说明

使用 /collection/describe 接口查看 Collection 的索引状态,返回参数 indexStatus 中的 status 标识当前 Collection 重建索引的状态,startTime 显示重建索引开始的时间。
ready:表示当前 Collection 准备就绪,可正常使用。
training data:表示当前 Collection 正在进行数据训练,即训练模型已生成向量数据。
building index:表示当前 Collection 正在重建索引,即将生成的向量数据存储到新的索引中。
failed:重建索引失败,可能会影响集合读写操作。
注意:
training data building index 状态期间不可写入数据。若重建索引之前先删除旧索引,则集合不可进行相似性查询,只能进行精确查询。
{
"code": 0,
"msg": "operation success",
"collection": {
"database": "db-test",
"collection": "coll-test",
"documentCount": 4,
"indexes": [
......
],
"indexStatus": {
"status": "ready",
"startTime": ""
}
}
}