首页/AI/RAG 与向量库速查/Qdrant 过滤条件写法
本包目录(229 条)
架构与流程30 条解析与切分33 条Embedding 与检索50 条
向量数据库49 条
重排与生成32 条评估与优化35 条

Qdrant 过滤条件写法

Qdrant 过滤器由 must / should / must_not / min_should 组合子条件:MatchValue、MatchAny、Range、HasId 等;嵌套字段用 key 路径访问,多租户可用 should 组合属主列表。

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

组合过滤条件

组合过滤条件
flt = models.Filter(
    must=[models.FieldCondition(key="lang", match=models.MatchValue(value="zh"))],
    should=[models.FieldCondition(key="tenant", match=models.MatchAny(any=["t1", "t2"])),
            models.FieldCondition(key="public", match=models.MatchValue(value=True))],
    must_not=[models.FieldCondition(key="status", match=models.MatchValue(value="deprecated"))],
)
# should 默认至少命中一个;需要更严格时用 min_should 指定下限

范围条件

范围条件
models.FieldCondition(key="updated_at", range=models.DatetimeRange(gte="2026-01-01T00:00:00Z"))
先在控制台的 Filter 面板验证条件表达式,再固化到代码,减少语法试错。

易错点

  • must_not 与 should 混用时优先级理解错,过滤结果与预期相反
  • 字符串大小写敏感(MatchValue 默认精确匹配),拼写差异导致漏检

数据来源与参考

  • Qdrant 官方文档(Filtering / Field conditions)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌