Migrate from OpenSearch to Qdrant

What You Need from OpenSearch

  • OpenSearch URL — the HTTP endpoint
  • Index name — the index containing your vectors
  • Credentials — username/password or API key

Concept Mapping

OpenSearchQdrantNotes
IndexCollectionOne-to-one mapping
DocumentPointEach document becomes a point
knn_vector fieldVectorMapped automatically
Document fieldsPayloadNon-vector fields become payload
cosinesimilCosineDirect mapping
l2EuclidDirect mapping
innerproductDotDirect mapping

Run the Migration

docker run --net=host --rm -it registry.cloud.qdrant.io/library/qdrant-migration opensearch \
    --opensearch.url 'https://your-opensearch-host:9200' \
    --opensearch.index 'your-index' \
    --opensearch.username 'admin' \
    --opensearch.password 'your-password' \
    --qdrant.url 'https://your-instance.cloud.qdrant.io:6334' \
    --qdrant.api-key 'your-qdrant-api-key' \
    --qdrant.collection 'your-collection'

Using API Key Authentication

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

All OpenSearch-Specific Flags

FlagRequiredDescription
--opensearch.urlYesOpenSearch HTTP endpoint
--opensearch.indexYesIndex to migrate
--opensearch.usernameNoUsername for basic auth
--opensearch.passwordNoPassword for basic auth
--opensearch.api-keyNoAPI key for authentication
--opensearch.insecure-skip-verifyNoSkip TLS certificate verification

Qdrant-Side Options

FlagDefaultDescription
--qdrant.id-field__id__Payload field name for original OpenSearch document IDs

Next Steps

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

Was this page useful?

Thank you for your feedback! 🙏

We are sorry to hear that. 😔 You can edit this page on GitHub, or create a GitHub issue.