跳转到主要内容

本地 Milvus

本地 Milvus 将数据存储在本地文件中,适合单机部署和开发测试。

参数说明

参数类型必填说明
typestring固定为 "milvus"
db_pathstring本地数据库文件路径
collection_namestring集合(Collection)名称
dimensioninteger向量维度,必须与 embed 模型维度一致(当前为 1024)

如何获取连接参数

本地 Milvus 无需额外的鉴权参数,只需要:
  1. 数据库文件路径:指定本地文件路径,如果文件不存在会自动创建
  2. 集合名称:自定义集合名称,用于存储文档元素
  3. 向量维度:必须与使用的 embed 模型维度一致(当前 Pipeline 使用的模型均为 1024 维)

配置示例

from xparse_client import MilvusDestination

destination = MilvusDestination(
    db_path='./milvus_pipeline.db',      # 本地数据库文件路径
    collection_name='my_collection',      # 集合名称
    dimension=1024                        # 向量维度,必须与 embed 模型一致
)

使用示例

from xparse_client import MilvusDestination, Pipeline

destination = MilvusDestination(
    db_path='./milvus_pipeline.db',
    collection_name='documents',
    dimension=1024
)

# ... 其他配置

pipeline = Pipeline(
    source=source,
    destination=destination,
    # ...其他配置
)
pipeline.run()

数据 Schema

Pipeline 默认创建如下字段:
字段名类型说明
element_idVARCHAR(128)元素唯一标识符(主键)
embeddingsFLOAT_VECTOR(1024)向量嵌入(1024 维)
textVARCHAR(65535)元素文本内容
record_idVARCHAR(128)记录 ID
metadataJSON元数据信息(动态字段)

向量检索示例

可以通过 pymilvus 在本地 Milvus 中执行相似度检索:
from pymilvus import MilvusClient

client = MilvusClient(uri='./milvus_pipeline.db')

# 将查询文本向量化(需调用相同的 embed API)
query_vector = [0.1, 0.2, 0.3, ...]  # 1024 维向量

results = client.search(
    collection_name='documents',
    data=[query_vector],
    limit=5,
    search_params={"metric_type": "COSINE", "params": {"nprobe": 10}},
    output_fields=['text', 'metadata']
)

for result in results[0]:
    print(f"相似度: {1 - result['distance']:.4f}")
    print(f"文本: {result['entity']['text'][:100]}...")

注意事项

  • 本地 Milvus 将数据存储在单个文件中,适合开发和测试
  • 如果文件不存在,Milvus 会自动创建
  • 确保有足够的磁盘空间存储向量数据
  • 本地 Milvus 不支持分布式部署,如需生产环境的高可用性,建议使用 Zilliz Cloud