表空间操作

http://master_server代表master服务,$db_name是创建的库名, $space_name是创建的表空间名

创建表空间

  1. curl -XPUT -H "content-type: application/json" -d'
  2. {
  3. "name": "space1",
  4. "partition_num": 1,
  5. "replica_num": 1,
  6. "engine": {
  7. "name": "gamma",
  8. "index_size": 70000,
  9. "max_size": 10000000,
  10. "nprobe": 10,
  11. "metric_type": "InnerProduct",
  12. "ncentroids": 256,
  13. "nsubvector": 32
  14. },
  15. "properties": {
  16. "field1": {
  17. "type": "keyword"
  18. },
  19. "field2": {
  20. "type": "integer"
  21. },
  22. "field3": {
  23. "type": "float",
  24. "index": "true"
  25. },
  26. "field4": {
  27. "type": "string",
  28. "array": true,
  29. "index": "true"
  30. },
  31. "field5": {
  32. "type": "integer",
  33. "array": false,
  34. "index": "true"
  35. },
  36. "field6": {
  37. "type": "vector",
  38. "dimension": 128
  39. },
  40. "field7": {
  41. "type": "vector",
  42. "dimension": 256,
  43. "store_type": "Mmap",
  44. "store_param": {
  45. "cache_size": 2000
  46. }
  47. }
  48. }
  49. }
  50. ' http://master_server/space/$db_name/_create

参数说明:

字段标识字段名称类型是否必填备注
name空间名称string
partition_num分片数量int
replica_num副本数量int
engine引擎配置json引擎配置
properties空间配置json定义表字段及类型

1、name 不能为空,不能以数字或下划线开头,尽量不使用特殊字符等。

2、partition_num 指定表空间数据分片数量,不同的分片可分布在不同的机器,来避免单台机器的资源限制。

3、replica_num 副本数量,建议设置成3,表示每个分片数据有两个备份,保证数据高可用。

engine配置:

字段标识字段名称类型是否必填备注
name引擎名称string目前固定为gamma
index_size分片索引阀值int
max_size分片最大记录数量int
nprobe搜索桶数量int默认10
metric_type计算方式stringInnerProduct:内积 L2:欧式距离, 默认L2
ncentroids int默认256
nsubvectorPQ拆分子向量大小int默认64, 必须是4的倍数

1、index_size 指定每个分片的记录数量达到多少开始创建索引,不指定则不创建索引。

2、max_size 指定每个分片最多存储的记录数量,防止服务器内存占用过多。

3、nprobe 指定在索引中搜索的桶的数量,不能大于ncentroids的值。

4、metric_type 指定计算方式,内积或欧式距离。

5、ncentroids 指定建索引时分桶的数量。

6、nsubvector PQ拆分子向量大小。

properties配置:

1、表空间结构定义字段支持的类型(即type的值)有4种: keyword,integer,float,vector(keyword等价于string)。

2、keyword类型的字段支持index、array属性,index定义是否创建索引,array指定是否允许多个值。

3、integer,float类型的字段支持index属性,index设为true的字段支持使用数值范围过滤查询。

4、vector 类型字段为特征字段,一个表空间中支持多个特征字段,vector类型的字段支持的属性如下:

字段标识字段名称类型是否必填备注
dimension特征维数int值上述nsubvector值的整数倍
store_type特征存储类型string支持Mmap和RocksDB, 默认Mmap
store_param存储参数设置json设置数据占用内存大小
model_id特征插件模型string使用特征插件服务时指定

5、dimension 定义type是vector的字段,指定特征维数大小。

6、store_param 定义该特征字段存储占用内存空间大小,默认大小是engine max_size参数值特征维数每个特征值占用空间大小。若store_type设置为RocksDB, 则改值代表RocksDB读缓冲大小。多个特征字段之间该参数相互不影响,所有特征字段cache_size总大小建议不超过机器内存的70%。示例:128维float特征, max_size=1000000, 则cache_size默认值是10000001284B。

查看表空间

  1. curl -XGET http://master_server/space/$db_name/$space_name

删除表空间

  1. curl -XDELETE http://master_server/space/$db_name/$space_name