mirror of
https://github.com/qdrant/landing_page.git
synced 2026-10-06 11:28:31 +02:00
* initial commit; fixed anchor links on internal docs pages * add back in absolute paths for links in code comments * fix: update linkchecker include filter to match server port 1314 PR #1629 changed the Hugo server to port 1314 but forgot to update the --include filter, which still matched port 1313. This caused all links to be excluded, making the checker a no-op (0 checked, 82277 excluded). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Fix url rewrite regex so images are not impacted * Fix links from non-documentation pages * Fix broken links * more broken links * more broken links * broken link * Add srcset width descriptor to .lycheeignore * Ignore URLs that contain a % character * Anchor regex so it matches the entire URL --------- Co-authored-by: kanungle <neil.kanungo@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Abdon Pijpelink <abdon.pijpelink@qdrant.com>
79 lines
3.0 KiB
Markdown
79 lines
3.0 KiB
Markdown
---
|
|
title: From Chroma
|
|
weight: 40
|
|
partition: ecosystem
|
|
---
|
|
|
|
# Migrate from Chroma to Qdrant
|
|
|
|
## What You Need from Chroma
|
|
|
|
- **Chroma URL** — the HTTP endpoint of your Chroma server
|
|
- **Collection name** — the collection to migrate
|
|
- **Authentication** — API token or basic auth credentials, if configured
|
|
|
|
## Concept Mapping
|
|
|
|
| Chroma | Qdrant | Notes |
|
|
| :--- | :--- | :--- |
|
|
| Collection | Collection | One-to-one mapping |
|
|
| Document | Point | Each document becomes a point |
|
|
| Embeddings | Vector | Mapped automatically |
|
|
| Metadata | Payload | Direct mapping |
|
|
| Documents (text) | Payload field | Stored via `--qdrant.document-field` |
|
|
|
|
## Run the Migration
|
|
|
|
```bash
|
|
docker run --net=host --rm -it registry.cloud.qdrant.io/library/qdrant-migration chroma \
|
|
--chroma.url 'http://localhost:8000' \
|
|
--chroma.collection 'your-collection' \
|
|
--qdrant.url 'https://your-instance.cloud.qdrant.io:6334' \
|
|
--qdrant.api-key 'your-qdrant-api-key' \
|
|
--qdrant.collection 'your-collection'
|
|
```
|
|
|
|
### With Authentication
|
|
|
|
```bash
|
|
docker run --net=host --rm -it registry.cloud.qdrant.io/library/qdrant-migration chroma \
|
|
--chroma.url 'https://your-chroma-host:8000' \
|
|
--chroma.collection 'your-collection' \
|
|
--chroma.auth-type token \
|
|
--chroma.token 'your-chroma-token' \
|
|
--qdrant.url 'https://your-instance.cloud.qdrant.io:6334' \
|
|
--qdrant.api-key 'your-qdrant-api-key' \
|
|
--qdrant.collection 'your-collection'
|
|
```
|
|
|
|
### All Chroma-Specific Flags
|
|
|
|
| Flag | Required | Description |
|
|
| :--- | :--- | :--- |
|
|
| `--chroma.url` | No | Chroma HTTP endpoint (default: `http://localhost:8000`) |
|
|
| `--chroma.collection` | Yes | Collection name to migrate |
|
|
| `--chroma.tenant` | No | Chroma tenant |
|
|
| `--chroma.database` | No | Chroma database |
|
|
| `--chroma.auth-type` | No | `none`, `basic`, or `token` (default: `none`) |
|
|
| `--chroma.username` | No | Username (when auth-type is `basic`) |
|
|
| `--chroma.password` | No | Password (when auth-type is `basic`) |
|
|
| `--chroma.token` | No | Token (when auth-type is `token`) |
|
|
| `--chroma.token-header` | No | Custom header name for token auth |
|
|
|
|
### Qdrant-Side Options
|
|
|
|
| Flag | Default | Description |
|
|
| :--- | :--- | :--- |
|
|
| `--qdrant.document-field` | `document` | Payload field name to store Chroma document text |
|
|
| `--qdrant.id-field` | `__id__` | Payload field name for original Chroma IDs |
|
|
| `--qdrant.distance-metric` | `euclid` | `cosine`, `dot`, `manhattan`, or `euclid` |
|
|
|
|
## Gotchas
|
|
|
|
- **Document text:** Chroma stores raw document text alongside embeddings. Use `--qdrant.document-field` to preserve this text as a payload field in Qdrant.
|
|
- **ID mapping:** Chroma uses string IDs. The migration tool maps these to Qdrant point IDs and stores the original Chroma ID in a payload field (default: `__id__`).
|
|
- **Distance metric:** Chroma defaults to L2 distance. Verify which metric your collection uses and set `--qdrant.distance-metric` accordingly.
|
|
|
|
## Next Steps
|
|
|
|
After migration, verify your data arrived correctly with the [Migration Verification Guide](/documentation/migration-guidance/). |