@mastra/astra
Vector store implementation for DataStax Astra DB, providing vector similarity search capabilities using Cassandra's vector search functionality.
Installation
npm install @mastra/astra
Usage
import { AstraVector } from '@mastra/astra';
const vectorStore = new AstraVector({
token: 'your-astra-token',
endpoint: 'your-astra-endpoint',
keyspace: 'your-keyspace'
});
await vectorStore.createIndex({ indexName: 'myCollection', dimension: 1536, metric: 'cosine' });
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 });
const results = await vectorStore.query({
indexName: 'myCollection',
queryVector: [0.1, 0.2, ...],
topK: 10,
filter: { text: { $eq: 'doc1' } },
includeVector: false
});
Configuration
The Astra DB vector store requires:
token
: Your Astra DB token
endpoint
: Your Astra DB endpoint
keyspace
: (Optional) The keyspace to use
Features
- Vector similarity search with cosine, euclidean, and dot product metrics
- Metadata filtering support
- Batch vector upsert operations
- Collection management (create, list, describe, delete)
- Optional vector inclusion in query results
- Automatic UUID generation for vectors
- Built on top of @datastax/astra-db-ts client
Methods
createIndex({ indexName, dimension, metric? })
: Create a new collection
upsert({ indexName, vectors, metadata?, ids })
: Add or update vectors
query({ indexName, queryVector, topK?, filter?, includeVector? })
: Search for similar vectors
listIndexes()
: List all collections
describeIndex(indexName)
: Get collection statistics
deleteIndex(indexName)
: Delete a collection
Related Links