You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Cognitive Search向量搜索过滤顺序存疑:过滤是否在向量搜索后执行?

Azure Cognitive Search过滤式向量搜索的实际执行逻辑

首先明确:你遇到的现象是因为Azure Cognitive Search的向量搜索底层基于近似最近邻(ANN)算法,实际执行流程和文档的逻辑描述存在差异,并非严格的“先过滤再向量搜索”。

核心原因

ANN算法为了保证检索性能,不会先执行过滤再搜索,而是:

  1. 先在整个索引中检索出与查询向量最相似的top N个文档(N的大小由服务内部逻辑和你设置的k值相关,但通常远小于你手动调大后的500)
  2. 再对这top N个文档应用过滤条件,筛选出符合要求的结果
  3. 最后返回最多k个符合条件的文档

在你的测试场景中:

  • 当设置k=5时,ANN内部检索的初始结果池很小,其中仅包含1-2个符合过滤条件的文档,因此返回数量不足
  • 当调大k到500+时,初始结果池足够大,覆盖了所有5个符合过滤条件的文档,因此能返回完整的5个结果

解决方法

  • 调大查询的top/k参数:确保初始ANN检索的结果池足够覆盖所有符合过滤条件的文档,之后再通过过滤得到你需要的数量
  • 使用索引分区:如果过滤字段是固定的高基数字段(比如类别标签),可以将索引按该字段分区,让ANN直接在目标分区内检索,减少无效结果,更接近“先过滤再搜索”的效果
  • 检查相似度阈值:如果设置了过高的相似度过滤阈值,可能会进一步减少返回结果,确认阈值是否合理

内容的提问来源于stack exchange,提问作者Chris Evans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:42:39