首页/AI/RAG 与向量库速查/Qdrant 载荷索引(payload index)

Qdrant 载荷索引(payload index)

对高频过滤的 payload 字段建索引,Qdrant 可快速定位候选集合;keyword、integer、datetime、geo 等类型分别建对应索引,建索引后过滤检索延迟明显改善。

RAG 与向量库速查AI更新于 2026-10-13

载荷索引是什么

Qdrant 的过滤条件作用在载荷(payload)字段上。对高频过滤的字段建载荷索引后,检索能先快速定位符合条件的候选集合,再做向量比较;keyword、integer、datetime、geo 等类型要建对应类型的索引。不建索引过滤依然能工作,但数据量上来后延迟会明显恶化,这类退化通常没人立刻发现。

基本信息

索引类型keyword、integer、float、datetime、bool、geo 等
创建方式create_payload_index 指定字段名与字段类型
查看方式读取集合信息里的 payload_schema 字段
收益边界字段基数低(如布尔)时索引收益有限

典型使用场景

  • 多租户过滤:tenant 字段几乎每次查询都带,必须建索引
  • 来源筛选:按来源或文档类型过滤,字段基数适中收益明显
  • 时间窗口:按更新时间过滤近期文档,datetime 索引加速范围判断
  • 状态过滤:只检索已发布内容,配合 must_not 排除废弃文档
  • 性能排查:检索延迟升高时先确认过滤字段有没有建索引

建载荷索引

建载荷索引
client.create_payload_index(collection_name="kb", field_name="source",
                        field_schema=models.PayloadSchemaType.KEYWORD)
client.create_payload_index(collection_name="kb", field_name="updated_at",
                        field_schema=models.PayloadSchemaType.DATETIME)
# 字段类型选错(如时间戳建成 keyword)过滤仍能跑,但用不上索引加速
print(client.get_collection("kb").payload_schema)   # 确认索引已生效

字段类型与索引选择

字段类型索引 schema典型字段
分类标签keyword租户、来源、文档类型
数值区间integer 或 float版本号、页码范围
时间戳datetime更新时间窗口过滤
布尔开关bool是否公开、是否已发布
索引针对过滤字段而非全部 payload:字段基数低(如布尔)时索引收益有限,把长文本字段建成 keyword 索引反而会增加写入与存储成本。
建索引是后台任务:数据量大时构建要花时间,上线前预留窗口,并在完成后用同一条带过滤的查询对比延迟,确认收益真实存在。
过滤字段的选择性决定收益大小:几乎过滤不掉数据的条件(如命中九成以上记录)建索引帮助有限,真正需要索引的是能把候选集缩小一个量级以上的字段。

易错点

  • 过滤字段全部不建索引,数据量上来后延迟从毫秒级恶化
  • 把长文本字段建 keyword 索引,写入与存储成本明显增加
  • 字段类型与索引 schema 不匹配,过滤结果对但用不上索引
  • 建完索引未做延迟对比,收益与预期不符也无从判断

数据来源与参考

  • Qdrant 官方文档(Payload Indexing)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌