> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mem0.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Qdrant

> Use Qdrant as an open-source vector search engine in Mem0 for high-performance similarity search at scale.

[Qdrant](https://qdrant.tech/) is an open-source vector search engine. It is designed to work with large-scale datasets and provides a high-performance search engine for vector data.

### Usage

<CodeGroup>
  ```python Python theme={null}
  import os
  from mem0 import Memory

  os.environ["OPENAI_API_KEY"] = "sk-xx"

  config = {
      "vector_store": {
          "provider": "qdrant",
          "config": {
              "collection_name": "test",
              "host": "localhost",
              "port": 6333,
          }
      }
  }

  m = Memory.from_config(config)
  messages = [
      {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},
      {"role": "assistant", "content": "How about thriller movies? They can be quite engaging."},
      {"role": "user", "content": "I’m not a big fan of thriller movies but I love sci-fi movies."},
      {"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."}
  ]
  m.add(messages, user_id="alice", metadata={"category": "movies"})
  ```

  ```typescript TypeScript theme={null}
  import { Memory } from 'mem0ai/oss';

  const config = {
    vectorStore: {
      provider: 'qdrant',
      config: {
        collectionName: 'memories',
        dimension: 1536,
        host: 'localhost',
        port: 6333,
      },
    },
  };

  const memory = new Memory(config);
  const messages = [
      {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},
      {"role": "assistant", "content": "How about thriller movies? They can be quite engaging."},
      {"role": "user", "content": "I’m not a big fan of thriller movies but I love sci-fi movies."},
      {"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."}
  ]
  await memory.add(messages, { userId: "alice", metadata: { category: "movies" } });
  ```
</CodeGroup>

### Hybrid keyword search

Mem0 blends semantic similarity with BM25 keyword scoring. On the TypeScript SDK, Qdrant computes the BM25 vectors server-side, which requires Qdrant 1.15.2 or newer with inference enabled. Qdrant Cloud enables inference by default only for clusters created after 2025-07-07; older clusters must activate it from the Cluster Detail page. The Python SDK encodes BM25 locally instead and needs the `fastembed` package, so scores are not numerically comparable between the two SDKs.

When BM25 is unavailable, or when the collection was created before hybrid search was added, Mem0 logs a warning and falls back to semantic-only search. Writes are unaffected. To enable keyword scoring on an older collection, use a fresh collection name.

### Config

Let's see the available parameters for the `qdrant` config:

<Tabs>
  <Tab title="Python">
    | Parameter | Description | Default Value |
    | - | - | - |
    | `collection_name` | The name of the collection to store the vectors | `mem0` |
    | `embedding_model_dims` | Dimensions of the embedding model | `1536` |
    | `client` | Custom client for qdrant | `None` |
    | `host` | The host where the qdrant server is running | `None` |
    | `port` | The port where the qdrant server is running | `None` |
    | `path` | Path for the qdrant database | `/tmp/qdrant` |
    | `url` | Full URL for the qdrant server | `None` |
    | `api_key` | API key for the qdrant server | `None` |
    | `https` | Whether to force HTTPS on or off. `None` lets the client decide; set `False` for plain HTTP Qdrant with API key authentication. | `None` |
    | `on_disk` | For enabling persistent storage | `False` |
  </Tab>

  <Tab title="TypeScript">
    | Parameter | Description | Default Value |
    | - | - | - |
    | `collectionName` | The name of the collection to store the vectors | `mem0` |
    | `dimension` | Dimensions of the embedding model | `1536` |
    | `host` | The host where the Qdrant server is running | `None` |
    | `port` | The port where the Qdrant server is running | `None` |
    | `path` | Path for the Qdrant database | `/tmp/qdrant` |
    | `url` | Full URL for the Qdrant server | `None` |
    | `apiKey` | API key for the Qdrant server | `None` |
    | `onDisk` | For enabling persistent storage | `False` |
  </Tab>
</Tabs>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.