在当今的大数据时代,数据库作为数据的存储和管理中心,发挥着越来越重要的作用。而向量数据库作为一种新兴的数据库类型,因其独特的向量索引和向量计算能力,被广泛应用于推荐系统、图像识别、自然语言处理等领域。Milvus作为一款开源的向量数据库,以其高性能、可扩展和易用的特点,受到了广泛的关注和应用。
为了更好地管理和应用Milvus向量数据库,我们推出了一款名为Milvus_cli的命令行工具。Milvus_cli是一款便捷的数据库客户端,支持数据库连接、数据导入和导出、向量间距离计算等功能,可以通过交互式命令行提示符方便地执行各种命令。下面,我们将详细介绍Milvus_cli的安装和使用方法。
一、安装方法
Milvus_cli支持在线安装和离线安装两种方式。在线安装只需要使用Python包管理器pip,执行以下命令即可:
python -m pip uninstall pyreadline -y
python -m pip install pyreadline3
如果是 Python 是 3.x 版本:会报错:

第二步:如果仍然报错,手动修改源码(终极解决办法)
如果安装 pyreadline3 后依然提示 No module named 'readline',我们可以直接修改 milvus_cli 的源码,让它跳过对 readline 的依赖(这只会导致命令行失去"按上下键翻历史命令"的功能,但完全不影响连接和操作 Milvus)。
-
根据报错信息,打开这个文件:
D:\installsoft\python\Lib\site-packages\milvus_cli\utils.py -
找到第 1 行的代码:
import readline -
将其修改为以下代码(用 try-except 包裹,使其变成可选依赖)
try: import readline except ImportError: pass
-
保存文件,然后再次运行
milvus_cli。

使用 pip 安装 Milvus Lite (轻量级)
Milvus Lite 是一个轻量级版本,可以直接作为 Python 库运行,无需 Docker。
-
环境准备:
-
安装 Python 3.7 或更高版本。
-
(推荐)创建并激活一个 Conda 虚拟环境。
-
-
安装 Milvus Lite:
-
在命令行中执行以下命令安装核心库:
bash
pip install milvus或一并安装 PyMilvus 客户端:
bash
pip install pymilvus milvus
-
接着启动:

接着我们去创建一个Collection
try {
// id - primary key
FieldType fieldId = FieldType.newBuilder()
.withName("id")
.withDataType(DataType.Int64)
.withPrimaryKey(true)
.build();
// message - original text content
FieldType fieldMessage = FieldType.newBuilder()
.withName("message")
.withDataType(DataType.VarChar)
.withMaxLength(65535)
.build();
// session_id - for grouping chat history
FieldType fieldSessionId = FieldType.newBuilder()
.withName("session_id")
.withDataType(DataType.VarChar)
.withMaxLength(128)
.build();
// role - user or assistant
FieldType fieldRole = FieldType.newBuilder()
.withName("role")
.withDataType(DataType.VarChar)
.withMaxLength(32)
.build();
// timestamp - for ordering
FieldType fieldTimestamp = FieldType.newBuilder()
.withName("timestamp")
.withDataType(DataType.Int64)
.build();
// vector - embedding of the message (for similarity search)
FieldType fieldVector = FieldType.newBuilder()
.withName("vector")
.withDataType(DataType.FloatVector)
.withDimension(EMBEDDING_DIMENSION)
.build();
List<FieldType> fieldTypes = Arrays.asList(fieldId, fieldMessage, fieldSessionId, fieldRole, fieldTimestamp, fieldVector);
CreateCollectionParam createCollectionParam = CreateCollectionParam.newBuilder()
.withCollectionName(collectionName)
.withDescription("Chat history with embeddings")
.withFieldTypes(fieldTypes)
.build();
milvusClient.createCollection(createCollectionParam);
log.info("Collection created: {}", collectionName);
// Create index BEFORE loading collection
try {
milvusClient.createIndex(io.milvus.param.index.CreateIndexParam.newBuilder()
.withCollectionName(collectionName)
.withFieldName("vector")
.withIndexType(io.milvus.param.IndexType.FLAT)
.withMetricType(io.milvus.param.MetricType.L2)
.build());
log.info("Vector index created");
} catch (Exception e) {
log.warn("Index creation warning (may be ok): {}", e.getMessage());
}
milvusClient.loadCollection(LoadCollectionParam.newBuilder()
.withCollectionName(collectionName)
.build());
log.info("Collection loaded: {}", collectionName);
} catch (Exception e) {
log.debug("Collection creation skipped (may already exist): {}", e.getMessage());
}
这个是我们用milvus_cli来查一下: connect -uri http://localhost:19530


通过多轮对话写入,这个大家可哟通过python llm写入,也可以使用主流框架写入:

这个是我我们再来查一下:


我只查了id,message字段,如果要查更多的字段,可以指定:


Milvus_cli作为一款全平台可用的数据库客户端,为Milvus向量数据库的管理和应用提供了便捷的工具。通过本文的介绍和实例演示,相信读者已经对Milvus_cli有了更加深入的了解。希望读者能够充分发挥Milvus_cli的优势,提升数据库管理和应用的效率。