milvus-io/milvus-lite
A lightweight version of Milvus
Milvus Lite – 快速概览
它是什么:Milvus Lite 是 Milvus 向量数据库的纯 Python、仅限本地使用的版本。它让您能够存储向量、标量字段及文本,并运行相似度搜索、过滤和混合(向量+文本)查询,而无需完整的 Milvus 服务器或任何 C++ 组件。
为什么重要:开发人员通常需要一个轻量级、易于安装的数据库来用于笔记本、单元测试或小型原型。Milvus Lite 模拟了 Milvus 的 pymilvus API,因此针对它编写的代码,未来只需极少的变更即可切换至生产环境的 Milvus 部署(单机、分布式或 Zilliz Cloud)。
主要功能:
- 本地存储 – 数据存储在单个
.db文件(或目录)中,使用具备 WAL、memtables 及 Parquet 分段的 LSM-tree 风格引擎。 - 向量搜索 – 通过 FAISS 索引(HNSW, IVF 等)进行稠密向量搜索,以及通过精确内积或 BM25 评分进行稀疏向量搜索。
- 全文与混合搜索 – 内置 BM25 分析器,可选用 Jieba 进行中文处理,并具备结合向量与文本评分的能力。
- 丰富的 Schema – 支持多种标量类型、动态字段、JSON、数组、几何(WKT)以及如 OpenAI 文本嵌入等函数。
- gRPC 适配器 – 运行本地与 Milvus 兼容的服务器,让多个 Python 进程能共享同一个数据库。
- 纯 Python – 所有核心逻辑皆以 Python 编写,提供清晰的堆栈跟踪与易于检查的特性。
典型用法:
from pymilvus import MilvusClient
client = MilvusClient("./demo.db")
client.create_collection("docs", dimension=4)
client.insert("docs", [{"id":1, "vector":[0.1,0.2,0.3,0.4], "text":"python tutorial"}])
results = client.search("docs", data=[[0.1,0.2,0.3,0.4]], limit=2)
您也可以启动服务器(milvus-lite server)并透过 uri="http://127.0.0.1:19530" 连接,或直接使用嵌入式引擎 API(from milvus_lite import MilvusLite)。
限制:单进程写入、无身份验证、无分布式扩展、不支持二进制/float16 向量,且缺少部分进阶 Milvus 功能(例如乘积量化索引、空间索引)。
仓库摘要(来自 README)
| 方面 | 详细信息 |
|---|---|
| 许可证 | Apache 2.0 |
| 语言 | Python 3.10+ |
| 安装 | pip install -U milvus-lite (或通过 pymilvus[milvus-lite]) |
| 核心依赖 | pyarrow, numpy, faiss-cpu, grpcio |
| 主要组件 | Adapter (gRPC), Engine (存储, 搜索, 索引, 分析器, 函数, schema) |
| 支持数据类型 | 稠密与稀疏向量, BOOL, 整数, FLOAT, DOUBLE, VARCHAR, JSON, ARRAY, GEOMETRY, TIMESTAMPTZ |
| 搜索指标 | COSINE, L2, IP, BM25 |
| 索引 | HNSW, IVF, FLAT, BRUTE_FORCE, 稀疏倒排, 标量倒排 |
| 功能 | CRUD, 分区, 别名, 快照, 混合搜索, 重排序, 全文搜索, 几何过滤 |
| 运行模式 | 本地 .db 文件, 嵌入式引擎 API, 本地 gRPC 服务器 |
| 文档与测试 | docs/ 中的设计文档,跨操作系统与 Python 3.10-3.13 的广泛 CI |
| 典型用户 | 笔记本开发者, CI 测试, 小型 AI 应用, 需要 Milvus 兼容 API 但无需完整服务器者 |
谁适合使用?
- 数据科学家:在 Jupyter 中构建概念验证的相似度搜索流水线。
- 工程师:为最终将与真实 Milvus 集群对接的代码编写单元或集成测试。
- 学生:学习向量数据库,并希望在本地进行实验而无需 Docker 或繁重的安装。
快速入门检查清单
pip install "pymilvus[milvus-lite]"- 使用
.db文件路径创建客户端。 - 定义集合 Schema(或让 Milvus 自动创建)。
- 插入向量 / 文本 / 标量字段。
- 根据需要运行
search,query或delete。 - 若需多进程工作,请启动
milvus-lite server --data-dir ./data --port 19530并将客户端指向该 URI。
以上所有信息均直接取自项目的 README;未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目
- 项目