Astra vector store
The AstraVector class provides vector search using DataStax Astra DB, a cloud-native, serverless database built on Apache Cassandra. It provides vector search capabilities with enterprise-grade capacity and high availability.
Constructor optionsDirect link to Constructor options
token:
string
Astra DB API token
endpoint:
string
Astra DB API endpoint
keyspace?:
string
Optional keyspace name
MethodsDirect link to Methods
createIndex()Direct link to createindex
indexName:
string
Name of the index to create
dimension:
number
Vector dimension (must match your embedding model)
metric?:
'cosine' | 'euclidean' | 'dotproduct'
= cosine
Distance metric for similarity search (maps to dot_product for dotproduct)
upsert()Direct link to upsert
indexName:
string
Name of the index to upsert into
vectors:
number[][]
Array of embedding vectors
metadata?:
Record<string, any>[]
Metadata for each vector
ids?:
string[]
Optional vector IDs (auto-generated if not provided)
query()Direct link to query
indexName:
string
Name of the index to query
queryVector:
number[]
Query vector to find similar vectors
topK?:
number
= 10
Number of results to return
filter?:
Record<string, any>
Metadata filters for the query
includeVector?:
boolean
= false
Whether to include vectors in the results
listIndexes()Direct link to listindexes
Returns an array of index names as strings.
describeIndex()Direct link to describeindex
indexName:
string
Name of the index to describe
Returns:
interface IndexStats {
dimension: number
count: number
metric?: 'cosine' | 'euclidean' | 'dotproduct'
}
deleteIndex()Direct link to deleteindex
indexName:
string
Name of the index to delete
updateVector()Direct link to updatevector
indexName:
string
Name of the index containing the vector
id:
string
ID of the vector to update
update:
object
Update object containing vector and/or metadata changes
number[]
Record<string, any>
deleteVector()Direct link to deletevector
indexName:
string
Name of the index containing the vector
id:
string
ID of the vector to delete
Response typesDirect link to Response types
Query results are returned in this format:
interface QueryResult {
id: string
score: number
metadata?: Record<string, any>
vector?: number[] // Only included if includeVector is true
document?: string // Only returned by stores that keep document content
}
Error handlingDirect link to Error handling
The store throws MastraError instances from @mastra/core/error:
import { MastraError } from '@mastra/core/error'
try {
await store.query({
indexName: 'index_name',
queryVector: queryVector,
})
} catch (error) {
if (error instanceof MastraError) {
console.log(error.id) // 'MASTRA_VECTOR_ASTRA_QUERY_DB_ERROR'
console.log(error.domain) // 'MASTRA_VECTOR'
console.log(error.category) // 'USER' | 'THIRD_PARTY'
console.log(error.details) // Additional error context
}
}
Environment variablesDirect link to Environment variables
Required environment variables:
ASTRA_DB_TOKEN: Your Astra DB API tokenASTRA_DB_ENDPOINT: Your Astra DB API endpoint