向量数据库Qdrant的Collection参数配置说明
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: 启用严格模式后,系统在数据一致性和接口校验方面更严格,适用于关键业务场景。