四种向量检索架构对比:RedisSearch、ES 与混合架构选型分析

我们对比这四种:

1️⃣ RedisSearch:元数据过滤 + 向量检索(单引擎)

2️⃣ Elasticsearch:元数据过滤 + 向量检索(单引擎)

3️⃣ Redis + ES:ES先过滤 → 再向量检索

4️⃣ Redis + ES:Redis先向量检索 → ES过滤(工业主流)


一、四种架构整体图

① Redis 单引擎

复制代码
Query
 ↓
RedisSearch
(KNN + TAG filter)
 ↓
Result

② ES 单引擎

复制代码
Query
 ↓
Elasticsearch
(vector + bool filter)
 ↓
Result

③ 双引擎(ES先过滤 ❌)

复制代码
Query
 ↓
Elasticsearch filter
 ↓
Redis/ES vector search
 ↓
Result

④ 双引擎(Redis先召回 ✅)

复制代码
Query
 ↓
Redis KNN recall
 ↓
Elasticsearch filter
 ↓
Result

二、核心维度对比(⭐⭐⭐⭐⭐重点)

维度 Redis单引擎 ES单引擎 ES先过滤 Redis先召回(推荐)
向量搜索速度 ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐⭐
元数据过滤能力 ⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
召回质量 ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐ ❌ ⭐⭐⭐⭐⭐
延迟稳定性(P99) ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐
权限系统支持 ⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
大规模扩展 ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐⭐
工程复杂度 ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐
企业RAG适配 ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐

三、逐个方案深度分析


方案① RedisSearch 单引擎

工作方式

Redis 同时做:

复制代码
KNN + TAG过滤

优点

✅ 极低延迟(内存ANN)

✅ 架构简单

✅ 运维成本低


致命问题

1️⃣ TAG filter 会破坏 HNSW

过滤发生在搜索阶段:

复制代码
只允许访问部分节点

导致:

  • recall下降
  • ANN退化

2️⃣ 复杂查询能力弱

Redis 不擅长:

  • bool组合
  • 权限继承
  • keyword ranking

适合阶段

✅ MVP

✅ 百万级以内知识库


方案② Elasticsearch 单引擎

工作方式

ES 同时执行:

复制代码
bool filter + vector search

优点

✅ 强过滤能力

✅ hybrid search 原生支持

✅ 企业权限模型友好


问题(很多人低估)

1️⃣ 向量搜索慢

ES ANN:

复制代码
磁盘 + segment + bitset

不是纯内存图。


2️⃣ P99 延迟高

典型:

复制代码
P50 = 80ms
P99 = 800ms+

3️⃣ 成本高

需要:

  • 更多节点
  • JVM tuning

适合

✅ 过滤复杂

❌ 高QPS语义检索


方案③ ES先过滤 → 再向量检索(错误架构 ❌)

这是很多团队的直觉方案。


为什么看起来合理?

复制代码
先过滤权限
再找相似

逻辑像 SQL。


但 ANN 不是 SQL。

核心问题:破坏 HNSW 图

过滤后:

复制代码
导航路径消失

导致:

  • 找不到最近邻
  • recall暴跌

典型现象

  • 明明有答案却搜不到
  • 结果随机变化
  • 长尾延迟爆炸

工业界基本不用。


方案④ Redis先召回 → ES过滤(⭐工业标准)

工作方式

Step1:Redis

复制代码
全局语义空间找 TopK

保持 HNSW 完整。


Step2:ES

在候选集合中:

复制代码
权限过滤
keyword增强
排序

为什么它最好?

因为分工正确:

系统 做自己最擅长的事
Redis 快速语义Recall
ES 精准结构Filter

技术本质

这是:

复制代码
Recall → Filter → Rerank

也是:

  • OpenAI Retrieval
  • Microsoft Copilot
  • 企业知识助手

通用架构。


四、性能直觉对比(非常关键)

假设:

复制代码
1000万文档
财务权限占5%

ES先过滤

复制代码
1000万 → 50万
ANN在50万上跑

问题:

  • 图稀疏
  • 路径断裂

Redis先召回

复制代码
1000万 ANN导航
→ Top300
→ ES过滤

ANN 始终在最优空间。


五、真实生产结论(行业经验)

阶段 推荐架构
Demo Redis
小规模企业 ES
中大型RAG Redis→ES ⭐
超大规模 多Recall引擎

六、总结⭐

RedisSearch 适合高性能语义召回,Elasticsearch 擅长复杂元数据过滤。若先进行结构化过滤会破坏 HNSW 图的全局连通性,降低召回质量。因此工业界普遍采用 Redis 进行向量召回,再由 Elasticsearch 执行权限与结构化过滤的两阶段检索架构。


真正大厂级架构升级路径

复制代码
Redis → Redis+ES → 多Recall → Learning-to-Rank → Agentic Retrieval

这基本就是 AI 搜索系统的完整进化路线。

相关推荐
LONGZETECH17 小时前
新能源汽车动力电池检测仿真教学系统:C/S 分层架构与数字化实训落地全解析
大数据·c语言·开发语言·人工智能·架构·系统架构·汽车
倒流时光三十年17 小时前
PostgreSQL JSONB 操作符详解
大数据·数据库·postgresql
doiito(Do It Together)18 小时前
微服务资源优化新思路:Sablier + Podman 实现按需启动与自动休眠
微服务·架构·podman
言乐618 小时前
Python实现建造微服务商城后台
开发语言·python·算法·微服务·架构
2501_9419820518 小时前
企业微信私域流量运营:如何利用RPA技术构建高效的社群自动化管理系统
大数据·人工智能·机器人·自动化·企业微信·rpa
Zhu75818 小时前
使用腾讯CNB构建Hadoop定制容器镜像
大数据·hadoop·分布式
梦梦代码精19 小时前
LikeShop 前后端架构升级对比总白皮书——从传统商城架构到高性能多端统一体系
docker·架构·开源
TTBIGDATA19 小时前
【Ambari Plus】13.Spark 安装
大数据·hadoop·分布式·spark·ambari·sqoop·ambari plus
gs8014019 小时前
记一次多 Agent 架构在单节点 K8s 触发的 PID 耗尽与 Pod 驱逐(Evicted)大摸排
容器·架构·kubernetes
沙蒿同学20 小时前
当古诗词遇上 AI:从 38 万句诗词中取一个好名字
python·算法·架构