重建索引

最近更新时间:2024-05-17 15:54:51

我的收藏

功能介绍

rebuild_index() 接口用于重建 Base 类 Collection 的所有索引。

接口约束

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

请求示例

基于create_collection() 创建的集合,为集合 book 指定别名。
import tcvectordb
from tcvectordb.model.enum import FieldType, IndexType, MetricType, ReadConsistency
#create a database client object
client = tcvectordb.VectorDBClient(url='http://10.0.X.X', username='root', key='eC4bLRy2va******************************', read_consistency=ReadConsistency.EVENTUAL_CONSISTENCY, timeout=30)
# Specify the database name and Collection name
db = client.database('db-test')
coll = db.collection('book-vector')
# rebuild
coll.rebuild_index(drop_before_rebuild=False,throttle=1,timeout=30)

请求参数

参数
是否必选
参数含义
配置方法及要求
drop_before_rebuild
标识在重建索引时,是否需先删除旧索引再重建新索引。
说明:
重建索引需要占用额外的内存空间,数据量越大,消耗的内存空间越大。在重建索引之前,您需根据实际资源情况选择是否需先删除旧索引再重建,避免引起内存占满而阻塞业务正常运行。

取值如下所示:
True:重建之前,先删除旧索引在重建索引。
说明:
内存资源不足时,可先删除旧索引,在新索引还没有创建完成之前,该表无法正常读写。
False:重建之前,不删除旧索引,创建新索引完成之后再删除旧索引。默认为 False。
说明:
内存资源足够的情况下,可不删除旧索引。在新索引还没有创建完成之前,该表可读,禁止写入数据。
throttle
标识是否限制构建索引的单节点 CPU 核数。
说明:
重建索引会消耗 CPU 资源,为防止资源打满影响写入或者检索等操作,请根据业务实际配置重建索引的 CPU 核数。默认为限制CPU 核数为 1。
取值如下所示:
0:不限制 CPU 核数。
1:CPU 核数为 1。



返回参数

输出信息,如下所示。
{'affectedCount': 1}
参数名
参数含义
affectedCount
影响行数,即为重建索引的集合数量。

相关说明

使用 describe_collection() 可查看指定集合的索引状态。返回参数 indexStatus 中的 status 标识当前 Collection 重建索引的状态,startTime 显示重建索引开始的时间。
ready:表示当前 Collection 准备就绪,可正常使用。
training data:表示当前 Collection 正在进行数据训练,即训练模型已生成向量数据。
building index:表示当前 Collection 正在重建索引,即将生成的向量数据存储到新的索引中。
failed: 重建索引失败,可能会影响集合读写操作。
注意:
training data building index 状态期间不可写入数据。若重建索引之前先删除旧索引,则集合不可进行相似性查询,只能进行精确查询。