Appearance
Payload 与索引
Payload 是什么
附加在点上的 JSON,不参与向量距离计算,但可:
- 过滤:只在与条件匹配的点中做最近邻搜索。
- 回传:检索结果中直接带回
title、url等,无需再查库。
示例:
json
{
"doc_id": "a1b2c3",
"chunk_index": 3,
"lang": "zh",
"public": true
}为何要对 Payload 建索引
过滤若扫描全量点会慢。为常用过滤字段创建 payload index 后,Qdrant 可高效筛选候选集再算向量距离。
常见索引类型(与字段类型相关):
- keyword:精确匹配、枚举。
- integer / float:范围。
- bool。
- text(视版本支持):全文类能力以官方文档为准。
创建索引时机:可在有数据后通过 API 创建;字段类型与过滤运算符需匹配。
过滤与性能
- 过滤越窄(匹配点越少),通常越快。
- 高基数字段若无索引,大集合上过滤可能成为瓶颈。
- 设计 payload 时预留 tenant_id、权限标签 等,便于多租户与安全检索。
设计建议
- 只存检索与展示需要的字段,避免超大 payload。
- 需要范围查询的数字用 number,不要用字符串存数字。
- 与关系库通过 doc_id / user_id 关联,避免在向量库冗余整张业务表。
下一章:距离度量 的选择对结果的影响。