Milvus介绍¶
什么是milvus向量数据库?¶
鸢属 Milvus向量数据库是一个为向量查询与检索而设计的云原生数据库
官网介绍: https://milvus.io/docs/zh/overview.md
关键词:非结构化数据、Embeddings向量 、 向量相似性搜索
非结构化数据(如文本、图像和音频)格式各异,蕴含丰富的潜在语义,因此分析起来极具挑战性。为了处理这种复杂性,Embeddings 被用来将非结构化数据转换成能够捕捉其基本特征的数字向量。然后将这些向量存储在向量数据库中,从而实现快速、可扩展的搜索和分析。
Milvus 提供强大的数据建模功能,能够将非结构化或多模式数据组织成结构化的 Collections。它支持多种数据类型,适用于不同的属性模型,包括常见的数字和字符类型、各种向量类型、数组、集合和 JSON,节省了维护多个数据库系统的精力
Milvus 支持的搜索类型¶
Milvus 支持各种类型的搜索功能,以满足不同用例的需求:
- ANN 搜索:查找最接近查询向量的前 K 个向量。
- 过滤搜索:在指定的过滤条件下执行 ANN 搜索。
- 范围搜索:查找查询向量指定半径范围内的向量。
- 混合搜索:基于多个向量场进行 ANN 搜索。
- 全文搜索:基于 BM25 的全文搜索。
- Rerankers:根据附加标准或辅助算法调整搜索结果顺序,完善初始 ANN 搜索结果。
- 获取:根据主键检索数据。
- 查询:使用特定表达式检索数据。
支持的index类型¶
Milvus 支持的大多数向量索引类型都使用近似近邻检索(ANNS)算法 根据实现方法,ANNS 向量索引可分为四种类型:基于树、基于图、基于哈希和基于量化
HNSW: 分层导航小世界图FLAT: 暴力搜索IVF_FLAT: 倒排文件+FLATIVF_SQ8: 倒排文件+标量量化IVF_PQ: 倒排文件+乘积量化SCANN: 可扩展近邻DisKANN: 磁盘索引
具体索引查阅官网比较全面
部署方式¶
Milvus 提供三种部署模式,涵盖各种数据规模--从 Jupyter Notebooks 中的本地原型到管理数百亿向量的大规模 Kubernetes 集群:
- Milvus Lite 是一个 Python 库,可以轻松集成到应用程序中。作为 Milvus 的轻量级版本,它非常适合在 Jupyter Notebooks 中进行快速原型开发,或在资源有限的边缘设备上运行
- Milvus Standalone 是单机服务器部署,所有组件都捆绑在一个 Docker 镜像中,方便部署
- Milvus Distributed 可部署在 Kubernetes 集群上,采用云原生架构,专为十亿规模甚至更大的场景而设计。该架构可确保关键组件的冗余
总结¶
Q: 向量数据库milvus解决了什么问题?
A: 向量的存储、检索、管理
Q: 不能解决什么问题?
A: 不能解决embedding的问题,即将非结构化数据(如文本、图像、音频等)转化为向量的功能