Comparthing Logo
搜索检索人工智能向量搜索关键词搜索抹布自然语言处理

关键词搜索引擎与向量相似度搜索

关键词搜索引擎使用倒排索引来匹配精确的词语,而向量相似度搜索则通过高维嵌入来查找语义相关的内容。这两种方法都为现代信息检索提供了动力,但它们在理解用户意图和对结果进行排序的方式上存在根本差异。

亮点

  • 关键词搜索使用倒排索引进行精确的词语匹配,而向量搜索使用词嵌入进行语义相似性分析。
  • 向量搜索能够理解同义词和释义,解决了困扰关键词系统的词汇不匹配问题。
  • 结合两种方法的混合检索现在已成为生产级人工智能应用的标准做法。
  • 关键词引擎运行速度更快、成本更低,但向量搜索能够为 RAG 和聊天机器人解锁自然语言理解能力。

关键词搜索引擎是什么?

传统搜索系统使用倒排索引和排名算法,将用户查询与包含相同或相关术语的文档进行匹配。

  • 关键词搜索依赖于倒排索引,它将每个唯一的单词映射到包含该单词的文档,以便快速查找。
  • BM25 和 TF-IDF 是基于关键词的检索系统中应用最广泛的排名算法之一。
  • Lucene、Elasticsearch 和 Solr 是围绕关键词索引构建的流行开源框架。
  • 关键词搜索擅长精确匹配查询,例如产品名称、错误代码或特定标识符。
  • 布尔运算符(AND、OR、NOT)允许用户精确地优化关键字查询。

向量相似性搜索是什么?

一种检索方法,它将文本、图像或其他数据转换为数值嵌入,并根据向量空间中的数学邻近性查找匹配项。

  • 向量搜索将数据表示为稠密的数值向量,通常具有数百或数千个维度。
  • 近似最近邻 (ANN) 算法(如 HNSW 和 IVF)能够大规模地快速查找相似性。
  • 常用的矢量数据库包括 Pinecone、Weaviate、Milvus 和 Qdrant。
  • 嵌入通常由神经网络模型生成,例如 BERT、Sentence Transformers 或 OpenAI 的文本嵌入模型。
  • 向量搜索能够捕捉语义含义,因此即使没有共同的关键词,“car”和“automobile”也可以匹配。

比较表

功能 关键词搜索引擎 向量相似性搜索
核心机制 通过倒排索引进行精确的词项匹配 基于嵌入向量的语义相似性
查询理解 词汇(词级) 语义(意义层面)
典型算法 BM25、TF-IDF、布尔检索 HNSW、IVF、余弦相似度、点积
优势 速度快、术语精确、资源利用率低 处理同义词、释义和意图
弱点 语义匹配错误,词汇不匹配问题 计算成本更高,调试难度更大。
常用工具 Elasticsearch、Solr、PostgreSQL FTS 松果、Milvus、Weaviate、FAISS
索引速度 速度极快,重量轻 由于嵌入生成,速度较慢
最佳应用案例 日志搜索、法律文件、产品目录 红绿灯系统、推荐引擎、聊天机器人

详细对比

他们如何找到比赛

关键词搜索引擎会扫描倒排索引,查找包含用户输入确切词语的文档。例如,如果您搜索“笔记本电脑电池”,搜索引擎会查找包含这两个词的文档,并根据词频和稀有度对它们进行排名。向量相似度搜索则采用完全不同的方法:它将查询和每个文档都转换为数值向量,然后衡量这些向量在高维空间中的接近程度。例如,关于“可再生能源”和“太阳能”的两句话可能没有任何共同的关键词,但在向量空间中仍然会彼此靠近。

处理语言和意图

关键词搜索最大的痛点之一是词汇不匹配问题,即用户用来描述事物的词语与文档作者使用的词语不同。向量搜索通过理解“快乐”、“喜悦”和“欣喜若狂”指向相似的概念,在很大程度上规避了这个问题。然而,在需要精确度的场合,例如搜索特定SKU、错误代码或法律引用时,关键词搜索引擎仍然更胜一筹,因为在这些情况下,同义词反而会降低准确性。

性能和资源需求

关键词索引轻量且速度极快,因此从小型博客搜索栏到企业级日志分析平台,无所不包。向量搜索需要通过神经网络模型生成嵌入向量,这会在索引过程中消耗 GPU 时间,而且存储密集向量比存储稀疏关键词列表需要更多的内存。在查询时,人工神经网络 (ANN) 算法牺牲少量准确率来换取巨大的速度提升,但其基础架构仍然比典型的 Lucene 架构更庞大。

混合方法的实践

如今大多数生产环境中的检索系统并不只选择关键词搜索或向量搜索。混合搜索结合了关键词搜索和向量搜索方法,通常使用互惠排名融合来合并来自两个搜索流程的结果。这样既能获得BM25精确匹配的精度,又能获得词嵌入的语义灵活性,从而支持自然语言查询。像Elasticsearch这样的框架现在都内置了向量搜索功能,而像Weaviate这样的向量数据库也开箱即用地支持混合查询。

调试和可解释性

当关键词搜索返回不良结果时,通常可以精确追踪哪些词匹配以及匹配原因。向量搜索则更像是一个黑箱:你可以看到两个向量很接近,但要解释为什么某个文档排名很高,则需要检查嵌入模型本身。对于受监管且审计至关重要的行业而言,关键词搜索引擎仍然具有优势,尽管用于可视化向量邻域的工具正在迎头赶上。

优点与缺点

关键词搜索引擎

优点

  • + 闪电般快速的查询
  • + 基础设施成本低
  • + 易于调试
  • + 精确匹配

继续

  • 缺乏语义理解
  • 词汇不匹配问题
  • 自然语言表达能力较差
  • 小姐的同义词

向量相似性搜索

优点

  • + 理解含义和意图
  • + 能自然地处理同义词。
  • + 非常适合 RAG 系统
  • + 跨语言

继续

  • 更高的计算成本
  • 结果更难解释
  • 索引速度较慢
  • 需要高质量的嵌入

常见误解

神话

向量搜索将完全取代关键词搜索。

现实

向量搜索在语义查询方面表现出色,但在处理产品 ID、错误代码或法律引用等精确匹配需求时则略显不足。目前大多数生产系统采用混合方法,将两种方法结合起来,而不是用一种替代另一种。

神话

关键词搜索是过时的技术。

现实

像 Elasticsearch 这样的关键词搜索引擎仍然为包括 GitHub 代码搜索、日志分析平台和电子商务目录在内的大型系统提供支持。BM25 仍然是一个强大的基准模型,其性能通常优于简单的向量模型,尤其是在技术语料库上。

神话

向量搜索总是能返回更相关的结果。

现实

对于包含罕见技术术语或文档较短的查询,向量搜索的性能实际上可能不如 BM25。BEIR 等基准测试表明,最佳方法很大程度上取决于数据集,混合融合方法通常优于任何单一方法。

神话

你需要一个专门的矢量数据库来进行矢量搜索。

现实

虽然像 Pinecone 和 Milvus 这样的专用矢量数据库提供了优化,但您也可以使用 FAISS、PostgreSQL 中的 pgvector,甚至 Elasticsearch 内置的 dense_vector 字段来运行矢量搜索。具体选择取决于规模和现有基础设施。

神话

嵌入可以完美地捕捉所有含义。

现实

嵌入模型将语义压缩成固定大小的向量,不可避免地会丢失信息。两个不相关的文档在向量空间中可能非常接近,细微的差别(例如否定或讽刺)往往会变得模糊不清。这就是为什么混合检索和重排序步骤如此常见的原因。

常见问题解答

关键词搜索和向量搜索的主要区别是什么?
关键词搜索利用倒排索引,根据共享词匹配文档;而向量搜索则基于词嵌入空间中的语义相似性进行匹配。前者是词汇层面的精确匹配,后者是基于语义的近似匹配。这意味着,当你搜索“automobiles”(汽车)时,关键词搜索可能会遗漏一篇关于“cars”(汽车)的文档,但向量搜索则很可能找到它。
哪种更适合 RAG 应用?
向量搜索是大多数检索增强生成(RAG)系统的基础,因为它能够将用户用自然语言提出的问题与相关的文档片段进行匹配。然而,许多RAG流程现在采用混合检索,将BM25关键词得分与向量相似度相结合,以提高技术术语和罕见实体的召回率。
关键词搜索和向量搜索可以同时使用吗?
是的,混合搜索正日益成为常态。系统会同时运行关键词查询和向量查询,然后使用诸如互惠排名融合之类的方法合并结果,或者将两个信号都输入到重排序器中。Elasticsearch、Weaviate 和 Vespa 都原生支持混合检索。
向量搜索比关键词搜索慢吗?
一般来说,向量搜索每次查询需要更多的计算量,因为它比较的是稠密向量,而不是查找稀疏的倒排索引。然而,像 HNSW 这样的 ANN 算法使得向量搜索的速度足够快,可以用于实时应用,而且语义质量的提升通常足以弥补额外的计算成本。索引速度也较慢,因为需要为每个文档生成词嵌入。
我应该使用哪种嵌入模型进行向量搜索?
选择哪种模型取决于您的数据和语言。对于英文文本,OpenAI 的 text-embedding-3-small、Cohere 的 embed-v3 以及 BGE 和 E5 等开源模型都很受欢迎。对于多语言需求,可以考虑 multilingual-e5 或 Cohere 的多语言嵌入等模型。务必使用您自己的数据进行基准测试,因为性能会因领域而异。
我需要向量数据库吗?还是可以使用PostgreSQL?
对于中小型数据集(通常可达数百万个向量),PostgreSQL 搭配 pgvector 扩展可以很好地处理向量搜索。但对于更大规模或具有元数据过滤和横向扩展等特殊需求的情况,专用的向量数据库(例如 Pinecone、Milvus 或 Qdrant)是更好的选择。许多团队会先使用 pgvector,然后再进行迁移。
BM25 与向量搜索相比如何?
BM25 是一种概率排序函数,它基于词频和逆文档频率对文档进行评分,至今仍是一个强大的基准模型。在 BEIR 等基准测试中,BM25 通常优于基本向量模型,尤其是在技术语料库上。使用对比学习训练的现代密集检索器在语义任务上可以超越 BM25,但混合方法可以缩小差距。
什么是词汇不匹配问题?
当用户和文档作者使用不同的词语来描述同一个概念时,就会出现词汇不匹配问题。例如,在纯关键词系统中,搜索“心脏病发作”无法找到只提及“心肌梗死”的文档。向量搜索通过将这两个短语映射到嵌入空间中相邻的点来解决这个问题,即使它们没有相同的词语。
向量搜索与关键词搜索相比成本如何?
向量搜索成本更高,因为在索引过程中需要支付向量嵌入生成费用(通常通过 API 调用或 GPU 推理),而且存储密集向量会占用更多内存。关键词搜索则使用易于压缩的低成本倒排索引。对于一百万个文档,向量存储可能需要 3-6 GB 的空间,而关键词索引可能只需要几百 MB。
向量搜索能否处理精确匹配查询?
并非总是如此。向量搜索将所有结果都视为近似相似,因此对特定产品代码(例如“SKU-12345”)的查询可能会返回语义相似但实际错误的结果。这就是为什么混合系统会保留关键词搜索以满足精确匹配的需求,或者将元数据过滤与向量查询结合使用。

裁决

当您的查询精准、文档结构清晰,并且需要大规模、快速且可解释的检索时,请选择关键词搜索引擎。当用户使用自然语言提问,并且您希望系统理解意图、同义词和上下文时,请选择向量相似度搜索。在大多数现代人工智能应用中,最明智的做法是通过混合检索流程将两者结合起来。

相关比较

AI 错误检测与人工审核对比

人工智能质量检测利用机器学习模型大规模标记低质量或人工智能生成的内容,而人工审核则依靠训练有素的编辑通过判断和上下文来评估内容质量。每种方法各有优势,许多组织现在都将两者结合起来以获得最佳效果。

AI管道中的迭代检索与一次性检索系统

人工智能流程中的迭代检索通过多次搜索和推理循环来优化结果,而一次性检索系统则只需一次遍历即可获取信息。迭代方法擅长处理复杂的多跳查询,而一次性方法则优先考虑速度和简洁性,适用于简单的查询。

AI伙伴 vs 人类友谊

人工智能伴侣是旨在模拟对话、情感支持和临场感的数字系统,而人类友谊则建立在共同的生活经验、信任和情感互惠之上。本文将对比探讨这两种连接方式如何在日益数字化的世界中塑造沟通、情感支持、孤独感和社会行为。

AI计算排放与传统云排放对比

人工智能计算产生的排放主要来自训练大型模型的高能耗GPU集群,而传统云的排放则来自运行日常工作负载的通用数据中心。人工智能工作负载的单次任务耗电量远高于传统云,但传统云的运行规模要大得多。

AI检测与基于规则的检测

现代数字环境需要强大的防御机制,但其底层方法却截然不同,威胁、欺诈或异常情况的检测方式也大相径庭。基于规则的系统依赖于严格的预配置条件来标记已知威胁,而人工智能模型则通过分析行为来发现不常见的异常情况。在两者之间做出选择意味着需要在绝对确定性和适应性灵活性之间取得平衡。