Milvus vs. ElasticSearch:向量库检索性能测试

server/2025/3/25 22:59:57/

目录

    • 1. 构建检索库
    • 2. 测试条件
    • 3. 测试结果
    • 4. 性能分析
    • 5. 结论

1. 构建检索库

  • 构建通用场景库总计约2万张。
  • 构建车辆数据库总计约12万张。
  • 构建公共数据库,包括Flickr30k、COCO、nlvr2、vqa等数据集约43万张。

2. 测试条件

  • 环境说明:分别单机部署Milvus和Elasticsearch。
  • 配置说明:分别基于Milvus和Elasticsearch构建三种不同规模的检索库,Embedding维度为1024,均是采用余弦相似度计算距离,采用ANN方法返回topk检索结果,其他检索条件均相同。

3. 测试结果

检索库类型检索库大小(万)ES检索性能(秒/次)Milvus检索性能(秒/次)Milvus性能优势倍数
通用场景库20.02530.00524.87
车辆数据库120.108250.0064616.76
公共数据库430.366840.0070851.82

4. 性能分析

  1. 小数据量场景(2W)

    • Milvus 性能是 ES 的 4.87 倍,表明即使在小规模数据下,Milvus 的向量检索效率仍显著优于 ES。
  2. 中大数据量场景(12W/43W)

  • 12W 数据量时,Milvus 性能提升倍数扩大至 16.76
  • 43W 数据量时,Milvus 性能优势达到 51.82
  • ES 的检索耗时随数据量增长呈非线性上升(从 0.0253s → 0.36684s),而 Milvus 仅从 0.0052s → 0.00708s,增长幅度极小。
  1. 扩展性差异
  • ES 的检索性能与数据量高度相关,说明其底层架构对大规模向量数据的处理效率存在瓶颈。

  • Milvus 则展现出优异的扩展性,其检索耗时几乎不受数据量增长影响,体现了专用向量数据库的设计优势。

5. 结论

  • Milvus 优势:专为向量检索优化,采用列式存储、近似最近邻(ANN)算法和分布式架构,在大规模场景下性能显著优于 ES。
  • ES 局限性:基于倒排索引的架构对非结构化向量数据处理效率较低,适合文本检索为主的混合场景。
  • 选型建议
    ✔️ 纯向量检索场景(尤其是数据量 >10W 时)优先选择 Milvus
    ✔️ 文本+向量混合检索场景可考虑 ES,但需接受向量性能折损

http://www.ppmy.cn/server/179084.html

相关文章

基于Spring Boot的可信捐赠系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

关于CNN,RNN,GAN,GNN,DQN,Transformer,LSTM,DBN你了解多少

以下是神经网络中常见的几种模型的简要介绍: 1. ​CNN (Convolutional Neural Network, 卷积神经网络) ​用途: 主要用于图像处理和计算机视觉任务。​特点: 通过卷积核提取局部特征,具有平移不变性,能够有效处理高维数据(如图像…

D-Link 登录信息泄露(越权)CVE-2018-7034 漏洞分析

D-Link 登录信息泄露(越权)CVE-2018-7034 漏洞分析 Description TRENDnet TEW-751DR v1.03B03, TEW-752DRU v1.03B01, and TEW733GR v1.03B01 devices allow authentication bypass via an AUTHORIZED_GROUP1 value, as demonstrated by a request for…

git管理时keil项目忽略文件列表

在使用 Git 管理 Keil MDK(μVision 5)工程时,需要忽略编译生成的临时文件、调试文件、用户配置等非必要内容。以下是忽略文件的详细列表及说明,可直接保存为 .gitignore 文件: Keil MDK 工程的 .gitignore 文件 giti…

Linux第九讲:动静态库

Linux第九讲:动静态库 1.静态库的制作 && 什么是库1.1静态库生成 2.动态库2.1动态库生成2.2静态链接和动态链接的区别2.3解决策略2.3.1将我们写的动态库拷贝至系统2.3.2建立软链接2.3.3LD_LIBRARY_PATH2.3.4ldconfig方案:配置/etc/ld.so.conf.d/…

HTTP长连接与短连接的前世今生

HTTP长连接与短连接的前世今生 大家好!作为一名在互联网摸爬滚打多年的开发者,今天想跟大家聊聊HTTP中的长连接和短连接这个话题。 记得我刚入行时,对这些概念一头雾水,希望这篇文章能帮助新入行的朋友少走些弯路。 什么是HTTP…

基于深度学习的行人人脸识别系统的设计与实现

标题:基于深度学习的行人人脸识别系统的设计与实现 内容:1.摘要 随着安防、智能监控等领域的快速发展,行人人脸识别技术的需求日益增长。本研究旨在设计并实现一个基于深度学习的行人人脸识别系统。采用先进的深度学习算法,如卷积神经网络(C…

uniapp笔记-swiper组件实现轮播图

思路 主要就是参考 swiper | uni-app官网 实现轮播图。 实例 新建一个banner.vue通用组件。 代码如下&#xff1a; <template><view>轮播图</view> </template><script> </script><style> </style> 随后在index.vue中导…