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

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,但需接受向量性能折损
MilvusElasticsearch是两种不同的开源软件,用于处理和管理大规模数据。虽然它们都具有处理和搜索大规模数据的能力,但它们在设计和功能方面有一些区别。 首先,Milvus是为解决向量相似度搜索而设计的。它具有高效的向量存储和检索能力,能够处理大规模的向量数据。Milvus采用了多种加速技术,如近似最近邻搜索(ANN)算法和向量索引结构,可以快速检索相似向量。它的设计目的是为了支持各种应用场景,如图像检索、推荐系统和自然语言处理。 而Elasticsearch是一个广泛用于搜索和分析的分布式搜索引擎。它提供了强大的全文搜索和分析功能,能够处理结构化和非结构化数据的检索和分析,并支持多种查询和聚合操作。Elasticsearch具有分布式架构,可以处理海量数据并支持实时搜索。 这两个软件在功能和应用场景上有一些重叠,但也存在一些区别。Milvus主要关注向量相似度搜索,而Elasticsearch更广泛地用于全文搜索和分析。Milvus在处理向量数据方面更加高效,而Elasticsearch在全文搜索和分析方面更具优势。 总之,选择使用Milvus还是Elasticsearch取决于具体的需求。如果需要进行向量相似度搜索和处理向量数据,那么Milvus可能是更好的选择。如果需要进行全文搜索和分析,并具有分布式计算和实时搜索的需求,那么Elasticsearch可能更适合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

探模之翼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值