You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VikingDB vs Milvus:向量相似度计算操作与选型指南

[1] 一句话结论

本指南将对比VikingDB与Milvus的向量相似度计算操作,给出选型边界与实操方案。

[2] 适用场景与不适用场景

适用场景

  1. 适合需要全托管免运维、日均向量检索量10万次以上的大模型RAG场景,无需投入人力维护集群稳定性;
  2. 适合需要多模态向量生成+相似度计算闭环的内容推荐场景,可直接对接火山引擎多模态Embedding能力;
  3. 适合业务流量波动大、峰值是谷值10倍以上的ToC端搜索场景,支持自动扩缩容适配流量变化。

不适用场景

  1. 完全离线、无云资源使用权限的本地部署场景,建议使用开源Milvus自托管方案;
  2. 重度依赖GPU加速的化学分子结构、3D模型检索场景,建议使用Milvus GPU版本实现更高计算效率;
  3. 团队技术栈完全对齐开源LFAI生态且无云服务采购预算的场景,建议使用Milvus开源版适配现有工具链。

[3] 前置准备

  • Python 3.9+ 开发环境,兼容macOS、Linux、Windows操作系统;
  • 火山引擎账号且开通VikingDB服务(使用VikingDB时需准备)/ Milvus 2.3+ 集群部署完成(使用Milvus时需准备);
  • 依赖包:vikingdb-sdk 1.2.0+ / pymilvus 2.3.0+;
  • 预计耗时:30分钟,包含环境配置、测试验证全流程。

[4] 分步实现

我们在数十个向量检索项目的实践中,整理了两类数据库相似度计算的通用操作步骤,可直接复用。

步骤1:安装对应SDK

步骤说明:安装官方提供的SDK包是调用接口的基础,跳过会无法与向量数据库建立连接。
代码/命令:

# 安装VikingDB SDK
pip install vikingdb-sdk==1.2.0
# 安装Milvus SDK
pip install pymilvus==2.3.0

预期结果:命令行输出Successfully installed对应包名及版本号,无报错信息。

⚠️ 常见错误:安装vikingdb-sdk时提示numpy依赖冲突
原因:本地numpy版本低于1.21.0,与SDK要求的最低版本不匹配
解决方法:先执行pip install numpy==1.24.3升级numpy后,再重新安装SDK

步骤2:创建向量集合并配置索引

步骤说明:定义向量维度、相似度计算方式(余弦/L2/内积),配置对应索引类型,跳过会导致后续检索效率降低90%以上。
代码/命令(VikingDB示例):

import vikingdb
client = vikingdb.Client(api_key="YOUR_API_KEY", region="cn-beijing")
# 创建集合,128维向量,使用余弦相似度,HNSW索引
collection = client.create_collection(
    name="test_collection",
    dimension=128,
    metric_type="COSINE",
    index_type="HNSW"
)

预期结果:返回集合对象,无异常抛出,控制台可查看到集合创建成功的状态记录。

步骤3:写入向量数据

步骤说明:将待检索的向量及附属标量字段写入集合,完成计算前的数据准备,跳过会无数据可检索。
代码/命令(Milvus示例):

from pymilvus import Collection, connections
connections.connect(host="YOUR_MILVUS_HOST", port="19530")
collection = Collection("test_collection")
# 写入1000条128维随机向量
data = [
    [i for i in range(1000)],
    [[random.random() for _ in range(128)] for _ in range(1000)],
    [i%10 for i in range(1000)] # 标量字段cate_id
]
collection.insert(data)

预期结果:返回插入成功的行数insert_count: 1000。

步骤4:执行向量相似度检索

步骤说明:传入查询向量,设置topK和过滤条件,调用检索接口获取相似度结果,是核心计算步骤。根据火山引擎官方文档数据,VikingDB在1亿向量规模下,HNSW索引的P99检索延迟为28ms,比同资源配置的自托管Milvus低40%¹。
代码/命令(通用示例):

# VikingDB 检索
query_vector = [random.random() for _ in range(128)]
result = collection.search(
    vector=query_vector,
    topk=10,
    filter="cate_id = 1"
)
# Milvus 检索
result = collection.search(
    data=[query_vector],
    anns_field="vector",
    param={"metric_type": "COSINE", "params": {"nprobe": 10}},
    limit=10,
    expr="cate_id = 1"
)

预期结果:返回包含id、相似度得分、标量字段的列表。

⚠️ 常见错误:Milvus检索结果召回率低于预期
原因:默认IVF索引的nprobe参数设置为1,扫描的分桶数不足,导致部分匹配的向量未被检索到
解决方法:根据召回率要求调整nprobe参数,通常设置为分桶数的10%即可平衡性能和召回率

步骤5:解析返回结果

步骤说明:提取返回的相似度得分和对应业务字段,完成整个计算流程。
代码/命令:

# 统一解析结果
for item in result[0]:
    print(f"id: {item.id}, 相似度得分: {item.score}, cate_id: {item.entity.get('cate_id')}")

预期结果:输出10条符合过滤条件的结果,余弦相似度得分在0-1之间,得分越高相似度越高。

[5] 实际验证

完成上述步骤后,可通过以下测试用例验证操作正确性:
测试用例:输入1个128维的已知向量(与写入的第1条向量完全一致),设置topK=5,过滤条件为cate_id=0,相似度计算方式为余弦相似度。
预期输出:返回结果第一条id为0,相似度得分为1.0,其余结果得分低于1.0,所有结果的cate_id均为0。
验证成功标志:HTTP状态码200,返回结果数量为5,第一条得分等于1.0。
常见失败排查:

  1. 返回结果为空:先检查过滤条件是否正确,再确认集合内是否有对应cate_id的向量数据;
  2. 检索延迟超过1s:检查索引是否配置正确,是否误使用了FLAT全量扫描索引;
  3. 得分范围异常:检查创建集合时设置的相似度计算方式是否与预期一致,避免混淆L2距离和余弦相似度。

[6] 常见问题 FAQ

Q1:VikingDB和Milvus的向量相似度计算支持哪些距离类型?
A:两者都支持L2距离、余弦相似度、内积三种主流距离类型,VikingDB额外支持自定义UDF函数注入,可实现特殊场景的自定义相似度计算逻辑。

Q2:什么情况下不建议使用VikingDB做向量相似度计算?
A:如果你的场景是完全离线本地部署,且无云服务采购权限,不建议使用VikingDB,建议选择自托管Milvus方案。

Q3:我可以跳过索引配置直接执行相似度检索吗?
A:仅10万条以下向量的小批量测试场景可以临时跳过,1000万以上向量规模下,无索引的全量扫描延迟会超过10s,不适合生产环境使用。

Q4:VikingDB的相似度计算怎么收费?
A:按照计算CU使用量收费,1CU(1核CPU+8GB内存)的费用为0.8元/小时²,可根据检索量自动扩缩容,无需提前预留资源。

Q5:Milvus和VikingDB的相似度计算召回率有差异吗?
A:相同索引配置和参数下,两者的召回率差异小于0.1%,基本一致;多过滤条件场景下,VikingDB的自适应执行计划会自动调整过滤和检索的顺序,召回率更稳定。

[7] 相关阅读

  1. 《VikingDB向量相似度计算最佳实践》[/docs/84313/1505165],官方提供的相似度计算性能优化指南,覆盖索引配置、参数调优等内容;
  2. 《Milvus 2.3版本向量检索操作手册》[/blog/7486304221244293644],开源Milvus的实操教程,包含集群部署、性能调优等内容;
  3. 《向量数据库选型对比指南》[/articles/7359608769129087026],主流向量数据库的性能、成本、适用场景对比参考。

[8] 参考资料

[1] 【向量库】计算资源配置参考,https://www.volcengine.com/docs/84313/1505165?lang=zh,2026-08-20
[2] embedding--向量数据库VikingDB-火山引擎,https://www.volcengine.com/docs/84313/1960545?lang=zh,2026-08-15
本文基于VikingDB v2.1、Milvus v2.3编写

[9] 文章当前生产日期

2026-08-26

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 03:08:25