网易首页 > 网易号 > 正文 申请入驻

Elasticsearch vs 向量数据库:寻找最佳混合检索方案

0
分享至


作者 | 陈将

多年来,以 Elasticsearch 为代表的基于全文检索的搜索方案,一直是搜索和推荐引擎等信息检索系统的默认选择。但传统的全文搜索只能提供基于关键字匹配的精确结果,例如找到包含特殊名词“Python3.9”的文档,或是找到带“花”字,“雨”字,“雪”字的古诗词。

但在实际需求中,我们有时候需要的,不只是古诗词中带“雪”字,还要找到表示雪很大这样意向的古诗词。比如,初高中语文课里学到的“忽如一夜春风来,千树万树梨花开”这句诗,虽然没有雪字,却精准表达了雪很大这样的意向。

再以照片检索为例,我们不仅需要 1:1 精准搜索出图像对应的原图,往往也需要对图像的特征、关键信息提取后,去检索具备类似特征的图像,完成以图搜图或者内容推荐等任务。

如何通过检索得到以上结果?

基于稠密向量打造的语义搜索就发挥了作用。通常来说,语义检索,通过将我们输入的词汇、图片、语音等原始数据转化为向量,进而捕捉不同数据之间的语义关系(例如知道“老师”和“教师”其实是一个意思),可以更精准的理解用户的搜索意图,从而提供更准确、更相关的搜索结果。

但如何实现语义检索?Embedding 模型和向量数据库在其中的作用至关重要。前者主要完成原始信息的向量化,后者则提供对向量化信息的存储、检索等服务。目前,检索增强生成(RAG)与多模态搜索,是语义检索的核心应用场景之一。

但通常来说,在实践中,全文检索与语义检索不是非此即彼的关系。我们需要同时兼顾语义理解和精确的关键字匹配。比如学术论文的写作中,用户不仅希望在搜索结果看到与搜索查询相关的概念,同时也希望保留查询中使用的原始信息返回搜索结果,比如基于一些特殊术语和名称。

因此,许多搜索应用正在采用混合搜索方法,结合两种方法的优势,以平衡灵活的语义相关性和可预测的精确关键字匹配。

1 混合搜索挑战

实现混合搜索的常见方法如下:

先使用像开源 Milvus 这样的专用向量数据库,进行高效和可扩展的语义搜索;

然后使用像 Elasticsearch 或 OpenSearch 这样的传统搜索引擎进行全文搜索。

两两搭配虽然效果不错,但也引入了新的复杂性:首先,搭配两套不同的搜索系统,也就意味着我们要同时管理不同的基础设施、配置和维护任务。这会造成更重的运营负担并增加潜在的集成问题。


在此基础上,混合检索统一解决方案横空出世。

混合搜索的统一解决方案将提供许多好处:

  • 减少基础设施维护:管理一个系统而不是两个系统大大降低了操作复杂性,节省了时间和资源。这也意味着更少的上下文切换和掌握两组不同 API 的算力开销。

  • 合并数据管理:统一的表结构允许用户将密集(基于向量)和稀疏(基于关键字)数据与共享元数据标签一起存储。使用两个单独的系统,则需要将元数据标签存储两次,以便双方能够进行元数据过滤。

  • 简化查询:单个请求可以执行语义和全文搜索任务,无需对单独的系统进行两次 API 调用。

  • 增强的安全性和权限改造:统一的方法可以实现更直接和更强大的安全管理,因为所有访问控制都可以在向量数据库中集中管理,从而提高安全性合规性和一致性。

2 如何使用统一的向量方法简化混合搜索

在语义搜索中,机器学习模型会根据文本的含义将文本“嵌入”为高维空间中的点(称为密集向量) 。具有相似语义的文本在此空间中,彼此的距离会更接近。例如,“苹果”和“水果”就比“苹果”和“汽车”更接近。这使得我们能够通过使用近似最近邻 (ANN) 算法计算每个点之间的距离来快速找到语义相关的文本。

这种方法也可以通过将文档和查询编码为稀疏向量,进而应用于全文搜索。

在稀疏向量中,每个维度代表一个术语,值表示每个术语在文档中的重要性。

文档中不存在的术语的值为零。由于任何给定的文档通常只使用词汇表中所有可能术语的一小部分,因此,大多数术语不会出现在文档中。这也就意味着生成的向量是稀疏的——因为它们的大多数值为零。例如,在通常用于评估信息检索任务的 MS-MARCO 数据集中,虽然大约有 900 万个文档,100 万个词,但大多数文档只覆盖不足几百个词,生成的向量中绝大多数维度值为零。

这种极端稀疏性对于我们高效存储和处理这些向量具有重要意义。比如,我们可以将其用于优化搜索性能,同时保持准确性

最初为密集向量设计的向量数据库,其实也可以高效处理这些稀疏向量。例如,开源向量数据库 Milvus 刚刚发布了使用 Sparse-BM25 的原生全文搜索功能。

Sparse-BM25 由 Milvus 提出,其原理类似 Elasticsearch 和其他全文搜索系统中常用的 BM25 算法,但针对稀疏向量设计,可以实现相同效果的全文搜索功能:

  • 具有数据剪枝功能的高效检索算法:通过剪枝来丢弃搜索查询中的低值稀疏向量,向量数据库可以显著减小索引大小并以最小的质量损失达成最优的性能。

  • 带来进一步的性能优化:将词频表示为稀疏向量而不是倒排索引,可以实现其他基于向量的优化。比如:用图索引替代暴力扫描,实现更有效的搜索;乘积量化(PQ)/ 标量量化(SQ),进一步减少内存占用。

除了这些优化之外,Sparse-BM25 还继承了高性能向量数据库 Milvus 的几个系统级优势:

  • 高效的底层实现和内存管理:Milvus 的核心向量索引引擎采用 C++ 实现,可以提供比基于 Java 的系统(如 Elasticsearch)更高效的内存管理。与基于 JVM 的方法相比,仅此一项就节省了数 GB 的内存占用。

  • 对 MMap 的支持:与 Elasticsearch 在内存和磁盘中使用 page-cache 进行索引存储类似,Milvus 支持内存映射(MMap)以在索引超过可用内存时扩展内存容量。

3 为什么传统搜索引擎在向量搜索方面有先天不足

Elasticsearch 是为传统的倒排索引构建的,在不根本改变架构的情况下,支持向量索引具有非常大的挑战。这导致其相比于专用向量数据库有非常大的性能差异:即使只有 100 万个向量,Elasticsearch 也需要 200 毫秒(在全托管的 Elastic Cloud 上测试)才能返回搜索结果,而在 Milvus 上(在全托管的 Zilliz Cloud 上测试)需要 6 毫秒——性能差异超过 30 倍。

每秒查询率(QPS)测量的吞吐量也有 3 倍的差异,Zilliz Cloud 上性能最高的实例运行在 6,000QPS,而 Elastic Cloud 最多为 1,900QPS。此外,Zilliz Cloud 在加载向量数据和构建索引方面比 Elastic Cloud 快 15 倍。

此外,Elasticsearch 的 Java/JVM 实现导致其性能的可扩展性也弱于基于 C++/Go 实现的向量数据库。而且,Elasticsearch 缺乏高级的向量搜索功能,如基于磁盘的索引(DiskANN、MMap)、优化的元数据过滤和 range search。


4 结论

Milvus 作为性能领先的向量数据库,通过无缝结合语义搜索和全文搜索,将稠密向量搜索与优化的稀疏向量技术相结合,提供了卓越的性能、可扩展性和效率,并简化了基础设施的部署难度,降低成本的同时还增强了搜索能力。

展望未来,我们相信基于向量数据库的新型基础设施,将有望超越 Elasticsearch 成为混合搜索的标准解决方案。

作者介绍

陈将,Zilliz 生态和 AI 平台负责人

会议推荐

12 月 13 日至 14 日(周五至周六),AICon 全球人工智能开发与应用大会将在北京盛大开幕!本次大会汇聚 70+ 位 AI 及技术领域的顶尖专家,深入探讨大模型与推理、AI Agent、多模态、具身智能等前沿话题。此外还有丰富的圆桌论坛、以及展区活动,带你深入探索大模型的最新实践与未来趋势。年度最后一次 AI 盛宴,让我们一起见证 AI 未来。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
全员“梓涵”消失,新一批“烂大街”名字来袭,已经有人入坑了!

全员“梓涵”消失,新一批“烂大街”名字来袭,已经有人入坑了!

涵豆说历史
2024-12-02 10:22:50
长期在睡前玩手机的人,用不了多久,这5种痛苦或许会落到你身上

长期在睡前玩手机的人,用不了多久,这5种痛苦或许会落到你身上

华人星光
2024-10-03 13:32:49
美财长:加征关税或将加剧美通胀压力

美财长:加征关税或将加剧美通胀压力

新京报
2024-12-11 08:32:17
新“抖音一哥”诞生,悄悄涨粉2000万!

新“抖音一哥”诞生,悄悄涨粉2000万!

TOP电商
2024-12-10 18:58:14
大动作!上海两个百亿并购重组基金来了 瞄准芯片与医药产业

大动作!上海两个百亿并购重组基金来了 瞄准芯片与医药产业

财联社
2024-12-10 21:15:26
本拉登死后,他的两个老婆被抓进监狱,美军逼供手段让人唏嘘不已

本拉登死后,他的两个老婆被抓进监狱,美军逼供手段让人唏嘘不已

DELIXI
2024-12-10 13:25:26
林心如全程送别琼瑶「与家属站第一排」 上阳明山花葬快步离开

林心如全程送别琼瑶「与家属站第一排」 上阳明山花葬快步离开

ETtoday星光云
2024-12-11 11:53:11
24小时内必须走!巴拉圭决定驱逐中国外交官,并拒绝与台岛断交

24小时内必须走!巴拉圭决定驱逐中国外交官,并拒绝与台岛断交

青辉
2024-12-10 17:48:24
体内有恶性肿瘤的人,身体一般会有7个表现,很多人都忽略了,希望你没有!

体内有恶性肿瘤的人,身体一般会有7个表现,很多人都忽略了,希望你没有!

肿瘤科王红军
2024-12-11 14:24:42
太阳报:切尔西的小将会在零下21摄氏度的气温下踢欧协联比赛

太阳报:切尔西的小将会在零下21摄氏度的气温下踢欧协联比赛

直播吧
2024-12-11 06:36:08
为啥小米手机,不担心美国芯片断供?

为啥小米手机,不担心美国芯片断供?

星辰故事屋
2024-12-09 12:07:18
刘某娟录音曝光:这个民族应该扔颗原子弹!

刘某娟录音曝光:这个民族应该扔颗原子弹!

雪中风车
2024-12-07 06:53:55
张建春被“双开”,终止其党的二十大代表资格

张建春被“双开”,终止其党的二十大代表资格

政知新媒体
2024-12-10 16:14:47
美媒惊呼:欧美的特权被中国染指了!

美媒惊呼:欧美的特权被中国染指了!

小企鹅侃世界
2024-12-10 15:30:59
62岁梁朝伟突然官宣!震惊全网:42年了,终于等到这一天

62岁梁朝伟突然官宣!震惊全网:42年了,终于等到这一天

早安英文
2024-12-06 05:31:55
有哪些秘密宁可烂在肚子里也不说出来?话题也是引起了网友们共鸣

有哪些秘密宁可烂在肚子里也不说出来?话题也是引起了网友们共鸣

滑稽斑马呀
2024-07-01 13:55:27
金晨漏风啊

金晨漏风啊

小虎新车推荐员
2024-12-10 16:57:13
带着普京的“密信”,梅德韦杰夫突然访华,想和中国谈两件大事

带着普京的“密信”,梅德韦杰夫突然访华,想和中国谈两件大事

叮当当科技
2024-12-11 15:43:52
花20万催高10厘米?中产开始给孩子“卷”身高了

花20万催高10厘米?中产开始给孩子“卷”身高了

毒sir财经
2024-12-10 16:10:29
埃尔多安慌了,自己做的菜被内塔尼亚胡端走,宣布捍卫叙利亚完整

埃尔多安慌了,自己做的菜被内塔尼亚胡端走,宣布捍卫叙利亚完整

光电科技君
2024-12-11 12:03:43
2024-12-11 17:23:00
InfoQ
InfoQ
有内容的技术社区媒体
10496文章数 50969关注度
往期回顾 全部

科技要闻

谷歌宣布"突破性进展" 股价大涨5%

头条要闻

100多亿美元打水漂 通用汽车宣布"砍掉"Robotaxi业务

头条要闻

100多亿美元打水漂 通用汽车宣布"砍掉"Robotaxi业务

体育要闻

雷霆灭独行侠闯进四强 东契奇16+11

娱乐要闻

琼瑶遗体火化,儿子含泪送别母亲

财经要闻

留给杨植麟“排雷”的时间不多了

汽车要闻

高颜值高空间高乐趣 iCAR V23是懂年轻人的

态度原创

家居
时尚
数码
亲子
公开课

家居要闻

环抱大平层 神秘通透

40+的女人不要放弃打扮:不穿老年装,到老都没有大妈感

数码要闻

消灭刘海!挖孔屏版MacBook Pro渲染图出炉

亲子要闻

混血女儿6岁,第一次让我这么生气,一点没留情面,该这么做吗?

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版