ES 切换向量检索的能力变化
Q:如果从 ElasticSearch 切换到向量检索,哪些能力会下降,哪些能力会提升?
来源:字节跳动 Agent开发实习生一面
新手答:“向量检索语义能力更强,ES 适合关键词。”
高手答:
这不是简单的“好 vs 坏”,而是两种检索范式的能力互补。切换时要清楚你会失去什么、得到什么、以及怎么补回来。
切换后提升的能力:
| 能力 | 原因 |
|---|---|
| 语义理解 | “如何降低延迟”能匹配“性能优化方案”,ES 做不到 |
| 同义/改写鲁棒性 | 用户换种说法不影响召回质量 |
| 跨语言检索 | 多语言 Embedding 天然支持中英混搜 |
| 模糊意图处理 | 用户表达不精确时,语义相似度比关键词匹配更有效 |
切换后下降的能力:
| 能力 | 原因 |
|---|---|
| 精确匹配 | 搜“错误码 E4012”,向量检索可能返回语义相关但不是这个编码的文档 |
| 结构化过滤 | ES 天然支持 range/term/bool 组合过滤,向量库需要额外的 metadata filter |
| 实时索引 | ES 近实时(1s),很多向量库批量索引有延迟 |
| 高亮/聚合 | ES 内建 highlight、aggregation,向量库通常没有 |
| 可解释性 | BM25 分数有明确含义(TF-IDF),向量相似度的 0.82 vs 0.79 难以解释 |
最佳实践——混合检索:
不要“切换”,而是“叠加”。用 ES 做精确匹配 + 结构化过滤,用向量库做语义召回,然后 RRF 或 Rerank 融合。把 ES 降级为精确匹配通道,而不是完全替换。
差距在哪:面试官考的是你对检索系统的完整理解。只说“向量比 ES 好”说明你没在生产环境用过 ES。能说出精确匹配下降、结构化过滤缺失、实时性差异,并给出混合方案,说明你做过检索系统的技术选型。