前途科技前途科技
  • 洞察
  • 服务
  • 关于
  • AI 资讯
    • 快讯
    • 产品
    • 技术
    • 商业
    • 政策
    • 初创
  • 洞察
  • 资源中心
    • 深度研究
      • AI 前沿
      • 案例研究
      • AI 知识库
    • 行业报告
      • 白皮书
      • 行业报告
      • 研究报告
      • 技术分享
      • 专题报告
    • 精选案例
      • 金融行业
      • 医疗行业
      • 教育行业
      • 零售行业
      • 制造行业
  • 服务
  • 关于
联系我们

多阶段检索:一次 API 调用,融合稠密+稀疏+过滤

技术2026年8月6日· 9 分钟阅读0 阅读

多阶段检索把语义相似度、关键词匹配和元数据过滤整合进一次API调用。本文用年报检索场景对比主流向量数据库,解释为何Qdrant能在图遍历中同步过滤,并给出可运行的代码示例,让搜索既精确又可解释。

多阶段检索:一次 API 调用,融合稠密+稀疏+过滤

Image 2

真实业务里,搜索从不是“找相似”这么简单。一份上千页的年报,里面全是强结构信息:品牌、季度、章节、财务指标。只靠向量召回,经常把对的答案放在错的上下文里。好的解法是多阶段查询:一次 API 调用完成语义检索、关键词匹配、结构过滤三件事。

过滤是硬约束,不是软偏好

假设场景:从美妆集团 H 的年报中,找品牌 B 在 FY25 报告期“风险因素”章节里,关于“活性成分供应链风险”的内容。系统会应用类似 SQL WHERE 的规则:

  • brand_name = '品牌B'
  • fiscal_year = 'FY25'
  • document_section = '风险因素'

这些规则是一票否决项。来自品牌 A 的段落,即使余弦相似度高达 0.99,只要品牌不符,直接丢弃。

Image 3

过去团队常用 Postgres 管结构数据,向量索引管 embedding,然后在内存里做合并胶水代码。能跑,但慢、脆弱、难同步。如果向量数据库原生支持过滤,架构会简洁得多。

选哪个向量数据库?

过去两年,每家厂商都在喊混合检索。真正决定体验的,是检索时过滤到底发生在哪个环节。对比主流引擎:

  • Pinecone:上手快,但云托管、闭源,过滤经常在 ANN 召回之后才执行,高选择性过滤会导致结果稀疏甚至为空。
  • Weaviate:内置 schema 和 BM25,但 schema 先行不够灵活,GraphQL 有学习曲线。
  • Milvus:面向十亿级向量,运维复杂,对文档场景是过度设计。
  • pgvector:Postgres 扩展很简洁,但原生不支持稀疏向量,大向量集性能受限。
  • Chroma:适合原型验证,生产级过滤和持久化仍在成熟中。
  • Elasticsearch:BM25 和过滤很强,但稠密向量是后加的,操作起来有点“油改电”的感觉。

Image 4

为什么选 Qdrant

在这个负载下,Qdrant 有三个关键优势:

  1. 过滤和图遍历同步进行。payload 索引与 HNSW 图一起构建,过滤不会拖累召回率。
  2. 支持无 schema 的 JSON payload。随时加新字段,不用迁移。
  3. Rust 编写,内存占用低,延迟稳定。

Image 5

摄入:分块、打标签、Upsert

PDF 解析成 text chunk,用规则和 LLM 对每个 chunk 打上品牌、章节、财年标签,然后统一 embedding,连同 payload 写入 Qdrant。payload 与向量同库同索引,一次写入,后续查询直接从库里过滤。

Image 6

查询:一个 API 调用全搞定

用户输入“品牌B在FY25风险因素章节中,供应链风险里的活性成分有哪些?”

from qdrant_client.models import Filter, FieldCondition, MatchValue

results = client.search(
    collection_name='enterprise_docs',
    query_vector=query_vector,
    query_filter=Filter(must=[
        FieldCondition(key='entity_name', match=MatchValue(value='品牌B')),
        FieldCondition(key='document_section', match=MatchValue(value='风险因素')),
        FieldCondition(key='fiscal_year', match=MatchValue(value='FY25')),
    ]),
    limit=5,
)

Qdrant 在遍历向量图时同步应用过滤。不符合品牌、章节、财年约束的 chunk,在打分前就被移除。一个来自品牌 A 的高相似度段落,永远不会进入候选集。这就是“演示级 AI”和“业务级 AI”的分水岭。

Image 7

生僻 token:用稀疏向量补位

“Niacinamide”这类专有化学成分,embedding 模型常常无感;监管编码、SKU 也一样。稀疏向量(BM25)能精准匹配这些 token。在 Qdrant 里,可以把稠密向量、稀疏向量、元数据过滤放在同一个请求中,具体 API 参数可参考官方混合检索指南。

结语

把文本当纯粹 float 数组,结果就是不准确、不可信。真实的业务数据都有结构:年报、合同、合规文件、产品目录。摄入时丢掉结构,等于丢掉最好的过滤器。

两步检索 = 结构约束 × 语义灵活性

大多数向量数据库把过滤当补丁,Qdrant 把过滤当核心。选择引擎,就是选择是否尊重数据的结构。

想动手跑一遍?Google Colab Notebook 免配置运行。

参考:

  • Qdrant Payload 过滤文档
  • Qdrant 混合检索指南
  • ANN-Benchmarks
  • PyMuPDF
标签:Qdrant混合检索元数据过滤RAG

想了解 AI 如何助力您的企业?

免费获取企业 AI 成熟度诊断报告,发现转型机会

置顶文章

会打字,就能"拍"电影:ScriptTask 开放限量内测
置顶

会打字,就能"拍"电影:ScriptTask 开放限量内测

//

24小时热榜

TOP1

289k页文档自监督编码器:从零训练JEPA全复盘

多阶段检索:一次 API 调用,融合稠密+稀疏+过滤
前途科技前途科技
服务关于快讯技术商业报告
前途科技微信公众号

微信公众号

扫码关注

Copyright © 2026 AccessPath.com, 前途国际科技咨询(北京)有限公司,版权所有。|京ICP备17045010号-1|京公网安备 11010502033860号|隐私政策|服务条款
TOP2

多阶段检索:一次 API 调用,融合稠密+稀疏+过滤

3

给编码代理装上“监工”:可靠循环工程实践

2小时前
4

机器能续写故事,证据跟得上吗?

2小时前
机器能续写故事,证据跟得上吗?
5

基础模型的崛起:语言只是第一块试验田

2小时前
基础模型的崛起:语言只是第一块试验田
6

AI教AI:训练监督链正在被改写

2小时前
AI教AI:训练监督链正在被改写
7

Medium Day 2026:AI时代的写作复兴指南

2小时前
Medium Day 2026:AI时代的写作复兴指南
8

为什么软件行业需要“编排者”?

2小时前
为什么软件行业需要“编排者”?
热门标签
大模型AgentRAG微调私有化部署Prompt EngineeringChatGPTClaudeDeepSeek智能客服知识管理内容生成代码辅助数据分析金融零售制造医疗教育AI 战略数字化转型ROI 分析OpenAIAnthropicGoogle

关注公众号

前途科技微信公众号

扫码关注,获取最新 AI 资讯

免费获取 AI 落地指南

3 步完成企业诊断,获取专属转型建议

已有 200+ 企业完成诊断