Files
landing_page/qdrant-landing/content/documentation/migrate-to-qdrant/from-milvus.md
T

3.4 KiB

title, short_description, description, weight, partition
title short_description description weight partition
From Milvus Migrate Milvus and Zilliz Cloud collections to Qdrant, preserving vectors and metadata in a single streamed transfer. Migrate from Milvus or Zilliz Cloud to Qdrant by streaming vectors, payloads, and metadata from Milvus collections into Qdrant with the Qdrant Migration Tool. 15 ecosystem

Migrate from Milvus to Qdrant

What You Need from Milvus

  • Milvus URL — the gRPC endpoint of your Milvus instance
  • Collection name — the collection to migrate
  • API key — if using Zilliz Cloud or authenticated Milvus

Concept Mapping

Milvus Qdrant Notes
Collection Collection One-to-one mapping
Partition Payload field or separate collection Use --milvus.partitions to specify which partitions to migrate
Schema fields Payload Non-vector fields become payload
COSINE Cosine Direct mapping
L2 Euclid Direct mapping
IP (inner product) Dot Direct mapping
Dynamic fields Payload JSON-typed dynamic fields are preserved

Run the Migration

docker run --net=host --rm -it registry.cloud.qdrant.io/library/qdrant-migration milvus \
    --milvus.url 'your-milvus-host:19530' \
    --milvus.collection 'your-collection' \
    --milvus.api-key 'your-milvus-api-key' \
    --qdrant.url 'https://your-instance.cloud.qdrant.io:6334' \
    --qdrant.api-key 'your-qdrant-api-key' \
    --qdrant.collection 'your-collection'

Migrating Specific Partitions

docker run --net=host --rm -it registry.cloud.qdrant.io/library/qdrant-migration milvus \
    --milvus.url 'your-milvus-host:19530' \
    --milvus.collection 'your-collection' \
    --milvus.partitions 'partition_a,partition_b' \
    --qdrant.url 'https://your-instance.cloud.qdrant.io:6334' \
    --qdrant.api-key 'your-qdrant-api-key' \
    --qdrant.collection 'your-collection'

All Milvus-Specific Flags

Flag Required Description
--milvus.url Yes Milvus gRPC endpoint
--milvus.collection Yes Collection name to migrate
--milvus.api-key No API key (for Zilliz Cloud)
--milvus.username No Username for authentication
--milvus.password No Password for authentication
--milvus.db-name No Database name
--milvus.partitions No Comma-separated partition names
--milvus.server-version No Override detected server version
--milvus.enable-tls-auth No Enable TLS authentication

Qdrant-Side Options

Flag Default Description
--qdrant.distance-metric — Distance metric per vector field (map format, e.g., field1:cosine,field2:dot)

Gotchas

  • Partition handling: Milvus partitions can map to Qdrant collections or payload filters. If you merge partitions into a single collection, add a partition name as a payload field for filtering.
  • Schema strictness: Milvus enforces schema on write; Qdrant is schema-flexible. Verify that the schema-less flexibility didn't cause payload fields to drift during migration.
  • Dynamic fields: Milvus dynamic fields (introduced in 2.3) may serialize differently. Check that JSON-typed dynamic fields survived the migration with correct structure.

Next Steps

After migration, verify your data arrived correctly with the Migration Verification Guide.