Collection参数配置说明文档

1. params(核心参数配置)

1.1 vectors

定义了向量字段的相关配置,本例中字段为 address

"address": {
  "size": 512,
  "distance": "Cosine",
  "hnsw_config": {},
  "on_disk": false,
  "multivector_config": {}
}
  • size: 向量维度,表示每个向量的长度(此处为 512)。
  • distance: 距离度量方式,Cosine 表示使用余弦相似度进行向量比较。
  • hnsw_config: 针对该向量字段的 HNSW(Hierarchical Navigable Small World)索引配置(此处为空,表示使用全局配置)。
  • on_disk: 是否将向量数据保存在磁盘上(false 表示保存在内存中)。
  • multivector_config: 多向量字段的配置(此处为空,表示未启用)。

1.2 分片和副本设置

"shard_number": 2,
"replication_factor": 1,
"write_consistency_factor": 1
  • shard_number: 数据将被分成的分片数(此处为 2)。
  • replication_factor: 每个分片的副本数量(1 表示无副本,仅主本)。
  • write_consistency_factor: 写入时所需的副本一致性数量(1 表示只要主本成功即认为写入成功)。

1.3 on_disk_payload

  • on_disk_payload: 是否将非向量的 payload 数据存储在磁盘上(false 表示全部保存在内存中)。

2. hnsw_config(全局 HNSW 索引配置)

"hnsw_config": {
  "m": 16,
  "ef_construct": 123,
  "full_scan_threshold": 10000,
  "max_indexing_threads": 0,
  "on_disk": false
}
  • m: 控制图中每个节点的最大连接数,较大值通常提高查询精度但增加构建时间。
  • ef_construct: 构建阶段使用的搜索宽度,值越大索引越精准。
  • full_scan_threshold: 小于该数量的向量数据将使用全量扫描(而非HNSW)。
  • max_indexing_threads: 构建索引时的最大线程数,0 表示自动选择。
  • on_disk: 是否将索引存储在磁盘上。

3. optimizer_config(优化器配置)

"optimizer_config": {
  "deleted_threshold": 0.2,
  "vacuum_min_vector_number": 1000,
  "default_segment_number": 0,
  "max_segment_size": null,
  "memmap_threshold": null,
  "indexing_threshold": 20000,
  "flush_interval_sec": 5,
  "max_optimization_threads": null
}
  • deleted_threshold: 删除数据达到该比例后触发优化(0.2 = 20%)。
  • vacuum_min_vector_number: 向量数超过此值才执行清理操作。
  • default_segment_number: 初始化时创建的默认段数量(0 表示系统决定)。
  • max_segment_size: 单段最大大小(null 表示使用默认)。
  • memmap_threshold: 超过此值后数据使用 memory-mapped 文件处理(null 表示默认)。
  • indexing_threshold: 向量数达到此阈值后将构建索引(如 HNSW)。
  • flush_interval_sec: 数据自动刷新到磁盘的时间间隔(单位:秒)。
  • max_optimization_threads: 执行优化操作的最大线程数(null 表示自动)。

4. wal_config(写前日志配置)

"wal_config": {
  "wal_capacity_mb": 32,
  "wal_segments_ahead": 0
}
  • wal_capacity_mb: 写前日志最大容量(单位:MB),超出后会触发持久化。
  • wal_segments_ahead: 允许多少个段提前写入磁盘。

5. quantization_config(量化配置)

"quantization_config": {
  "scalar": {
    "type": "int8",
    "quantile": 0.8,
    "always_ram": false
  }
}
  • type: 量化数据类型(int8 表示将向量压缩为 8-bit 整数)。
  • quantile: 数据分布中将用于压缩的百分位值(如 0.8 表示去除最极端 20% 的分布)。
  • always_ram: 是否始终将量化向量保存在内存中。

6. strict_mode_config(严格模式配置)

"strict_mode_config": {
  "enabled": false
}
  • enabled: 启用严格模式后,系统在数据一致性和接口校验方面更严格,适用于关键业务场景。
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐