@caleblawson/qdrant
v0.10.3
Published
Qdrant vector store provider for Mastra
Readme
@mastra/qdrant
Vector store implementation for Qdrant using the official @qdrant/js-client-rest SDK with added telemetry support.
Installation
pnpm add @mastra/qdrantUsage
import { QdrantVector } from '@mastra/qdrant';
const vectorStore = new QdrantVector(
'http://localhost:6333', // url
'optional-api-key', // optional
false // https (optional)
);
// Create a new collection
await vectorStore.createIndex({ indexName: 'myCollection', dimension: 1536, metric: 'cosine' });
// Add vectors
const vectors = [[0.1, 0.2, ...], [0.3, 0.4, ...]];
const metadata = [{ text: 'doc1' }, { text: 'doc2' }];
const ids = await vectorStore.upsert({ indexName: 'myCollection', vectors, metadata });
// Query vectors
const results = await vectorStore.query({
indexName: 'myCollection',
queryVector: [0.1, 0.2, ...],
topK: 10, // topK
filter: { text: { $eq: 'doc1' } }, // optional filter
includeVector: false // includeVector
});Configuration
Required:
url: URL of your Qdrant instance
Optional:
apiKey: API key for authenticationhttps: Whether to use HTTPS (default: false)
Features
- Vector similarity search with Cosine, Euclidean, and Dot Product metrics
- Automatic batching for large upserts (256 vectors per batch)
- Built-in telemetry support
- Metadata filtering
- Optional vector inclusion in query results
- Automatic UUID generation for vectors
- Support for both local and cloud deployments
- Built on top of @qdrant/js-client-rest SDK
Distance Metrics
The following distance metrics are supported:
cosine→ Cosine distanceeuclidean→ Euclidean distancedotproduct→ Dot product
Methods
createIndex({ indexName, dimension, metric? }): Create a new collectionupsert({ indexName, vectors, metadata?, ids? }): Add or update vectorsquery({ indexName, queryVector, topK?, filter?, includeVector? }): Search for similar vectorslistIndexes(): List all collectionsdescribeIndex(indexName): Get collection statisticsdeleteIndex(indexName): Delete a collection
