240712陪跑jasper | Milvus快速入门(常用demo,建议收藏!)

本文来源公众号“陪跑jasper”,仅用于学术分享,侵权删,干货满满。

原文链接:Milvus快速入门(常用demo)

前言:网络中充斥很多Milvus讲解,但我觉得很多概念没有介绍到,导致看起来很费劲,故此写下次快速入门,让你快速入门

1.Milvus简介

Milvus是一款开源的高性能、高可用的向量数据库,专为大规模机器学习和深度学习应用设计,旨在高效管理和检索高维向量数据。以下是Milvus的详细介绍:

一、基本信息

  • 名称:Milvus

  • 类型:向量数据库

  • 开发:由Zilliz开发并维护,后成为LF AI & Data Foundation的托管项目之一

  • 创建时间:2019年

  • 特点:高性能、高可用、云原生、易拓展

二、主要功能与特性

  1. 高效存储与索引:

  • 专门设计用于存储、索引和管理由深度神经网络和其他机器学习(ML)模型生成的大量嵌入向量。

  • 能够在万亿规模上对向量进行索引,支持针对TB级向量的增删改操作和近实时查询。

  • 高性能检索:

  • 通过优化的索引算法(如IVF、ANNOY、HNSW等)和分布式架构,实现亚秒级的向量检索速度。

  • 支持多种索引类型,可以根据数据特性和查询需求选择最合适的索引策略。

  • 高可用与可扩展性:

  • 支持集群部署,提供数据容错和自动恢复机制,确保服务的高可用性。

  • 采用存储与计算分离的云原生设计,易于在Kubernetes等容器编排平台上部署,支持横向扩展。

  • 混合查询能力:

  • 在向量相似度检索过程中支持对标量字段进行过滤,实现混合查询,进一步提高召回率和搜索灵活性。

  • 易用性:

  • 提供丰富的API接口,支持Python、Java、Go等多种编程语言,易于集成到现有系统中。

  • 提供了一整套简单直观的API,让用户可以针对不同场景选择不同的索引类型。

三、系统架构与组件

Milvus采用模块化设计,主要由以下几个核心组件构成:

  • Proxy:作为客户端请求的入口,负责负载均衡、路由请求、认证和鉴权。

  • IndexNode:负责构建和维护向量索引。

  • QueryNode:负责向量检索,执行搜索请求。

  • DataCoord:管理数据和索引的分配,以及数据的迁移和平衡。

  • DataNode:实际存储向量数据和索引文件。

  • MetaStore:存储所有元数据,包括集合(Collection)信息、分区(Partition)信息、索引信息等。

四、应用场景

Milvus在多个领域有着广泛的应用,包括但不限于:

  • 图像搜索:通过提取图像特征向量,实现相似图片查找,应用于电商、社交网络的图片搜索功能。

  • 文本相似度匹配:将文本转化为向量,应用于新闻推荐、问答系统中的相似问题匹配。

  • 语音识别:将音频特征转换为向量,用于语音搜索、语音助手的命令识别。

  • 推荐系统:结合用户行为、商品特征等向量,优化个性化推荐算法。

五、总结

Milvus作为一款专为AI时代设计的向量数据库,其高效、灵活的特性使其成为处理非结构化数据检索的理想选择。无论是科研项目还是企业级应用,Milvus都能提供强大的支撑。随着AI应用的不断深化,Milvus及其生态系统将持续发展,为开发者带来更多创新的可能性。

2.安装

环境准备

window11 wsl for window

docker,docker-compose

这些配置环境自行处理,网上很多相关介绍

tip:你可能会遇到wsl for window环境配置连接宿主机docker环境的问题,请参考https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers

通过docker安装

wget https://github.com/milvus-io/milvus/releases/download/v2.4.5/milvus-standalone-docker-compose.yml -O docker-compose.yml#安装sudo docker compose up -d
Creating milvus-etcd  ... doneCreating milvus-minio ... doneCreating milvus-standalone ... done@#关闭sudo docker compose downsudo rm -rf volumes

2.脚本demo(重点)

这里是讲解重点,通过解读官方脚本,让你知道一些Milvus实现原理和一些概念

下载官方demo脚本

wget https://raw.githubusercontent.com/milvus-io/pymilvus/v2.2.8/examples/hello_milvus.py

运行脚本

python hello_milvus.py

=== start connecting to Milvus     ===

Does collection hello_milvus exist in Milvus: False

=== Create collection `hello_milvus` ===


=== Start inserting entities       ===

Number of enti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值