Files
landing_page/qdrant-landing/content/documentation/migrate-to-qdrant/from-faiss.md
T
1a40961d62 fix: linkchecker include filter port mismatch (#2242)
* 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>
2026-03-30 17:21:32 +02:00

66 lines
2.3 KiB
Markdown

---
title: From FAISS
weight: 90
---
# Migrate from FAISS to Qdrant
## What You Need from FAISS
- **Index file path** — path to your FAISS index file
- **Distance metric** — the metric used when the index was built (`l2`, `inner product`, etc.)
<aside role="alert"><strong>Important:</strong> Only non-quantized FAISS index types are supported. Quantized indexes (e.g., <code>IndexIVFPQ</code>) do not store the original vectors and cannot be migrated.</aside>
## Supported Index Types
| FAISS Index Type | Supported | Notes |
| :--- | :--- | :--- |
| `IndexFlatL2` | Yes | Maps to `euclid` distance |
| `IndexFlatIP` | Yes | Maps to `dot` distance |
| `IndexHNSWFlat` | Yes | Full vectors are stored |
| `IndexIVFFlat` | Yes | Full vectors are stored |
| `IndexIVFPQ` | No | Quantized — original vectors not stored |
| `IndexPQ` | No | Quantized — original vectors not stored |
## Concept Mapping
| FAISS | Qdrant | Notes |
| :--- | :--- | :--- |
| Index | Collection | One-to-one mapping |
| Vector (by position) | Point | Position in index becomes point ID |
## Run the Migration
```bash
docker run --net=host --rm -it \
-v /path/to/your/index:/data \
registry.cloud.qdrant.io/library/qdrant-migration faiss \
--faiss.index-path '/data/your-index.index' \
--qdrant.url 'https://your-instance.cloud.qdrant.io:6334' \
--qdrant.api-key 'your-qdrant-api-key' \
--qdrant.collection 'your-collection' \
--qdrant.distance-metric cosine
```
### All FAISS-Specific Flags
| Flag | Required | Description |
| :--- | :--- | :--- |
| `--faiss.index-path` | Yes | Path to the FAISS index file (inside the container) |
### Qdrant-Side Options
| Flag | Default | Description |
| :--- | :--- | :--- |
| `--qdrant.distance-metric` | `cosine` | Distance metric: `cosine`, `dot`, `euclid`, or `manhattan` |
## Gotchas
- **No metadata:** FAISS indexes store only vectors. All points will have empty payloads. If you have a separate metadata store keyed by vector position, import that separately after migration.
- **Point IDs:** Points are assigned IDs based on their position in the FAISS index. Use this to join with any external metadata store.
## Next Steps
After migration, verify your data arrived correctly with the [Migration Verification Guide](/documentation/migration-guidance/).