Meilisearch v1.14 发布啦 ✨ 在我们的博客上阅读更多内容

转到主页Meilisearch 的徽标
返回文章
2025 年 3 月 13 日

混合搜索 101:其工作原理和重要性

了解什么是混合搜索、其工作原理、优势和局限性、如何开始实施等等。

Ilia Markov
Ilia Markov资深增长营销经理nochainmarkov
Hybrid Search 101: how it works and why It's important

混合搜索结合了关键词和语义搜索,为用户提供两全其美的体验,并让他们控制所需上下文深度的级别。

这种类型的信息检索 (IR) 在企业搜索、电子商务和知识管理系统中尤为重要,在这些系统中,某些输入需要深入的上下文理解,而另一些输入则需要精确的关键词匹配。

混合搜索的一个明显优势是它能够处理计算成本较低的数据。

这要归功于词汇匹配系统,与可能依赖大型语言模型 (LLM)、卷积神经网络 (CNN) 和其他耗能模型的语义算法相比,该系统使用的功率要少得多。

因此,可以调整这些系统以获得更高的性能,同时成为纯语义搜索系统的经济高效的替代方案。

然而,实施混合搜索需要战略规划。不熟悉语义权重的用户可能会感到困惑,从而导致沮丧或失去兴趣。

在接下来的文章中,我们将深入探讨混合搜索的重要性、如何实施混合搜索以及在哪些情况下混合搜索是首选解决方案。

什么是混合搜索?

混合搜索系统结合了基于关键词的检索(稀疏向量方法)和语义搜索系统(稠密向量嵌入),以优化精度和上下文相关性。

为了直观地解释混合搜索中使用的术语和技术,让我们看一下下面的示意图

What is hybrid search.png

语义搜索依赖于稠密向量,需要使用机器学习 (ML) 模型嵌入搜索查询和目标数据。诸如神经搜索之类的一些方法利用深度神经网络 (DNN) 来生成丰富的上下文见解,用于嵌入、检索和排名。向量搜索是另一种语义搜索类型,它使用嵌入模型创建稠密向量,使用近似最近邻 (ANN) 等 ML 算法进行信息检索,并使用余弦相似度搜索进行排名。

另一方面,关键词搜索依赖于通过 BM25 等算法生成的稀疏向量,这些算法使用词频-逆文档频率 (TF-IDF)。稀疏向量侧重于标记,其中每个值对应于大型词汇表中的特定关键词。当输入搜索查询时,系统会预处理输入,方法是提取单个词并将它们与文档的稀疏向量值进行匹配。然后根据关键词相关性对这些文档进行排名。

Prepocessing.png

稠密向量

稠密向量是广泛的,可以有数百或数千个浮点数(数值表示)来识别单个文档。它们表示向量空间中对象的相似性,并且可以具有以下形状

dense_vector = [0.8, 0.4, 0.2, 0.7, 0.9, 0.1, … ]

稠密向量通常是多维的,并且没有零值,因为它们是连续创建的,以捕获文档或查询的完整信息。

稀疏向量

稀疏向量比稠密向量短得多,并且只有少数数值表示针对特定关键词

sparse_vector = [{213: 0.3}, {543: 0.8}]

与稠密向量不同,这些向量主要由零组成,其中一些浮点值用于映射关键词。

混合搜索结合了稠密向量和稀疏向量检索的优势,以提高搜索得分。它首先从两种方法中收集匹配项,然后通过组合和重新排序结果(基于相关性)来优化最终输出。

在下一章中,我们将探讨混合搜索过程的每个步骤。

混合搜索如何工作?

混合搜索的工作原理是利用稠密向量的语义功能和稀疏向量的精确匹配和准确性。然后将从这两种方法检索到的输出混合在一起,以提供更相关的搜索结果。

How does hybrid search work.png

通过查看上面的示意图,我们可以将混合搜索工作流程构建为不同的步骤,从而允许语义搜索和关键词搜索并行运行

数据清理和预处理

  • 关键词搜索:需要强大的数据清理(例如,使用 NLP 工具删除停用词)以确保准确的词语匹配。
  • 语义搜索:受益于降噪和战略性文本分割(分块),以提高文档嵌入的质量。

嵌入:稠密和稀疏表示

  • 语义嵌入:诸如来自 Transformer 的双向编码器表示 (BERT) 和全局向量 (GloVe) 之类的模型将文档转换为稠密向量,捕获细微的上下文含义。
  • 关键词嵌入:虽然 BM25 主要充当基于词语频率的评分算法,但 SPLADE 利用神经网络来生成稀疏嵌入。

稠密向量和稀疏向量的检索机制

  • 语义检索:利用近似最近邻 (ANN) 和 K 最近邻 (KNN) 等算法在稠密向量空间内高效搜索。
  • 关键词检索:直接将查询词语与文档向量匹配。

集成检索

  • 混合搜索:最后一步涉及组合来自两种检索方法的结果,以确定最相关的结果。

可以调整混合搜索过程,以便将重要性分配给一种类型的结果而不是另一种类型的结果。如果上下文含义比词汇匹配更重要,则系统会优先处理来自语义搜索的输出。否则,它会优先处理关键词匹配。此功能在 Meilisearch 的 混合搜索设置中可用且易于控制。

什么是混合搜索引擎示例?

公司已经采用混合搜索引擎来提高搜索结果的准确性和相关性。最先进的混合搜索系统之一是 Google 搜索,它结合了多种搜索技术和算法来提供精确且上下文相关的结果。

Google 集成了基于关键词的搜索和机器学习模型,以解释用户查询、对网页进行排名并呈现最相关的信息。目前,他们利用 Vertex AI Embedding 模型来生成捕获语义含义的稠密向量,同时使用 BM25 和 SPLADE 来创建用于基于关键词的检索的稀疏向量。

为了配置搜索结果,Google 使用倒数排名融合 (RRF) 合并来自语义搜索和基于关键词的搜索的输出,如其官方 notebook 中详述的那样。

截至 2025 年 1 月,Google 搜索保持 89.79% 的市场份额,继续在搜索领域占据主导地位。虽然 AI 驱动的聊天机器人搜索功能已开始获得关注,但它们仍然不如 Google 的准确性和实时信息检索能力。

混合搜索有哪些优势?

与独立的基于关键词或语义搜索方法相比,混合搜索具有多个优势。其中一些优势包括

  1. 增强的搜索准确性和相关性:混合搜索通过将精确匹配与语义理解相结合,提供高质量的结果。这种级别的准确性最终可以留住用户并降低跳出率。
  2. 改进的用户体验:即使在用户输入不准确的词语或模糊的关键词时,系统也可以提供有意义的内容。这种检索信息的简易性允许设计人员创建引人入胜的搜索元素。只需询问 CarbonGraph:“我们将搜索服务从 Pinecone 迁移到 Meilisearch [...] OpenAI 嵌入器的设置非常简单,我们喜欢使用搜索文档的内容自动创建嵌入。”
  3. 经济高效的实施:与纯语义搜索引擎相比,混合搜索中的词汇匹配减少了内存使用量。这对于降低与存储和计算需求相关的云成本至关重要,尤其是在关键词搜索算法不依赖 GPU 的情况下。
  4. 提高搜索速度Opinly 是一家允许您监控竞争对手网站的公司,它通过采用混合搜索技术,能够 提高搜索速度 和结果的相关性。
  5. 个性化和适应性:可以配置混合搜索系统以动态调整关键词和语义相关性的权重,或为用户提供对其的控制。NFSA 合集在其搜索引擎中提供了此选项。

混合搜索在各个业务领域都提供了显著的优势,提供了速度、稳健性和效率。但是,它并非始终适用于每个搜索应用程序的最佳解决方案。下一章将探讨其局限性以及何时可能更适合采用替代方法。

混合搜索有哪些缺点?

虽然混合搜索提供了基于关键词的搜索和语义搜索的最佳效果,但它也带来了一些挑战,这些挑战可能会影响实施、性能和用户体验。以下是在采用混合搜索方法时需要考虑的一些主要缺点

  1. 实施的复杂性增加:混合搜索需要集成多种搜索算法(例如,使用 BM25 进行关键词匹配和使用稠密嵌入进行语义搜索)。这种集成在技术上可能很复杂,并且需要深入的技术理解。
  2. 难以平衡关键词精度和上下文:过度依赖一种方法可能会削弱另一种方法的优势(例如,语义能力强于关键词精度)。如果未实现良好的平衡,则可能导致糟糕的用户体验并增加跳出率。
  3. 糟糕的用户体验:如果用户可以调整语义权重,则界面应直观或专为熟悉该术语的受众而设计。否则,可能会导致困惑并增加用户流失的风险。根据这份 Toptotal 报告,88% 的用户在糟糕的用户体验后不太可能返回。

尽管存在这些挑战,但如果应用得当,混合搜索仍然是一种强大的工具。

何时应使用混合搜索?

混合搜索并非在所有情况下都是最佳解决方案。在数据高度结构化的情况下(例如,产品库存或特定的学术研究),精度是关键,并且必须严格区分含义不同的发音相似的术语。混合搜索在以下示例中真正表现出色

  1. 电子商务平台:Amazon 等在线零售商实施混合搜索以增强产品发现。当客户输入模糊的查询时,系统会利用关键词匹配和语义分析来呈现相关产品。您可以在下面看到它的实际应用;用户搜索了“bottle that keeps drinks cold”(可以保持饮料冷的瓶子),并收到了有关保温瓶的结果。

image9.png

  1. 企业知识库:组织通常维护大量的文档、手册和通信。混合搜索使员工能够高效地检索相关信息并提高工作效率。
  2. 流媒体服务:Netflix 等平台利用混合搜索来帮助用户查找内容,无论他们是按特定标题搜索还是描述主题。
  3. 市场:电子商务中的混合搜索可以提高搜索准确性,处理复杂的查询并增加产品发现,从而提高销售额。

现在,让我们看看如何使用 Meilisearch 在您的项目或工作流程中无缝引入混合搜索系统。

如何实施混合搜索?

实施混合搜索需要向量存储解决方案。可以使用多种语言和 AI 框架进行实施,但带有 Langchain 的 Python 通常是高效构建的良好堆栈。

来自 Meilisearch 的 AI 增强型混合搜索允许第三方嵌入模型和对输出的语义权重的控制,从而可以更深入地理解用户输入。

要开始使用 Meilisearch 的混合搜索功能,您必须创建一个帐户并获得 API 密钥和 云平台的访问权限。您可以免费注册并享受 14 天的试用期。

image6.png

注册后,您可以创建一个新项目并使用向量存储来添加和索引文档、运行查询、监控分析等等。

在设置选项卡中,您会找到一个名为“Embedders”(嵌入器)的选项,您可以在其中通过集成您选择的任何嵌入模型来增强您的混合搜索功能。下面是将 OpenAI 嵌入模型添加到嵌入器列表的示例。

image8.png

添加模型后,您可以跳转到搜索预览选项卡并在那里直接控制语义权重 - 您正在使用混合搜索!

image1.png

要将搜索引擎集成到您的工作流程中,请使用 Meilisearch 的 API,该 API 在云仪表板的主页上提供。以下是用于查询和检索结果的 Python 脚本

import meilisearch


client = meilisearch.Client(
    '<meilisearch_server_url>',
    '<master_token>')
query = "Give me a book about a post-apocalyptic world"
results = client.index('books').search(query, opt_params={
  'hybrid': {
    'semanticRatio': 0.7,
    'embedder': 'openai'
  },
  'limit':4
})


for result in results['hits']:
    print(result['metadata']['text'])

为了能够无错误地运行代码,您首先需要安装 Meilisearch 包

pip install meilisearch

接下来,您需要一个索引 - 您已添加到 Meilisearch Cloud 的文档集合(在本示例中为“books”)。此外,您还需要一个嵌入模型。

Python 脚本的结果如下

{"id": 15, "title": "The Road", "description": "A father and his young son journey through post-apocalyptic America, fighting for survival while holding onto their humanity.", "genre": "Post-Apocalyptic"}
{"id": 6, "title": "1984", "description": "A dystopian social science fiction novel that follows Winston Smith and his rebellion against the totalitarian government that controls their society.", "genre": "Dystopian Fiction"}
{"id": 18, "title": "The Handmaid's Tale", "description": "In a dystopian future, a woman is forced to live as a concubine under a fundamentalist theocratic dictatorship.", "genre": "Dystopian Fiction"}
{"id": 19, "title": "Snow Crash", "description": "A pizza delivery driver and hacker investigates a dangerous computer virus that can affect human minds in both virtual and real worlds.", "genre": "Cyberpunk"}

立即开始构建,方法是将您的文档轻松上传到 Meilisearch Cloud。使用 Python 和其他受支持的语言将混合搜索功能无缝集成到您的基础设施中,从而确保可扩展性和快速结果。

混合搜索与其他搜索类型相比如何?

混合搜索结合了两种关键方法:语义搜索和关键词搜索。但是,语义搜索是用于检索上下文或语义含义的方法的更广泛术语,包括向量搜索和神经搜索。让我们探讨所有这些搜索类型之间的差异

混合搜索向量搜索语义搜索关键词搜索神经搜索
结合稠密向量和稀疏向量表示,以增强搜索准确性和上下文相关性。使用稠密向量嵌入和 ANN 等算法来检索语义相关的结果。用于使用稠密向量获取上下文或语义输出的搜索技术的更广泛术语。使用 BM25 和 SPLADE 等技术来创建稀疏向量,这些稀疏向量用于准确的词汇匹配。此技术使用深度神经网络 (DNN) 来生成稠密向量,并支持不同的数据类型。

现在,让我们分别检查混合搜索与其他每种搜索方法有何不同。

混合搜索和向量搜索之间有什么区别?

混合搜索通过结合关键词匹配来增强向量搜索,从而提高准确性。作为语义搜索的一种形式,向量搜索依赖于嵌入器来生成稠密向量和检索算法(如 ANN 和 KNN)来识别相关结果。通过将这些与稀疏向量输出合并,混合搜索使用 RRF 等技术优化检索。

语义搜索和混合搜索之间有什么区别?

混合搜索是语义搜索和关键词搜索的组合。混合搜索系统响应的质量在很大程度上取决于用于语义搜索的嵌入器。嵌入器和应用于稠密向量的检索算法越好,混合搜索的语义或上下文响应就越好。此外,混合搜索使用关键词匹配来实现词汇准确性。

关键词搜索和混合搜索之间有什么区别?

混合搜索利用关键词搜索来提供精确的词汇结果。关键词搜索依赖于 BM25 或 SPLADE 等算法,以从查询和文档生成稀疏向量,从而实现快速准确的检索。但是,它缺乏语义理解,因此混合搜索集成了语义搜索技术以增强搜索相关性和上下文。

混合搜索和神经搜索之间有什么区别?

神经搜索是一种语义搜索类型,可以集成到混合搜索系统中。它利用深度神经网络 (DNN) 来提供高度上下文相关的结果,并支持各种数据输入类型。在混合设置中,神经搜索增强了拼写错误容错能力,同时在用户输入精确术语时通过词汇匹配保持准确性。

混合搜索为您提供两全其美的体验

混合搜索提供出色的准确性和上下文相关性,但实施起来可能很复杂。它涉及选择正确的向量数据库、选择最佳嵌入模型以及微调来自稠密向量和稀疏向量的输出。

Meilisearch 通过提供由富有洞察力的教程支持的直观平台,简化了此过程。在此平台上,您可以轻松上传数据集、试验嵌入、微调语义相关性以及访问高级指标(如分析和货币化)。

轻松开始实施混合搜索

借助跨多种编程语言的无缝 API 和 SDK 集成,Meilisearch 使您可以测试您的产品并在短时间内无缝部署混合搜索系统。

The 10 best AI enterprise search tools and platforms [2025]

10 大 AI 企业搜索工具和平台 [2025]

了解当今市场上十大最佳 AI 企业搜索工具。了解它们在功能、能力、用例、定价等方面的比较情况。

Ilia Markov
Ilia Markov2025 年 4 月 15 日
Top 10 Elasticsearch alternatives and competitors in 2025

2025 年十大 Elasticsearch 替代品和竞争对手

了解 Elasticsearch 的 10 大最佳替代品及其主要功能、定价、优点和缺点(基于真实用户)、集成等等。

Ilia Markov
Ilia Markov2025 年 4 月 10 日
Intelligent search: the future of finding relevant results

智能搜索:查找相关结果的未来

了解智能搜索如何改进信息发现。了解关键优势、实施技巧和趋势,以转变您查找重要内容的方式。

Ilia Markov
Ilia Markov2025 年 4 月 8 日