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 scalability and high availability.
Constructor Options
token:
string
Astra DB API token
endpoint:
string
Astra DB API endpoint
keyspace?:
string
Optional keyspace name
Methods
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()
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()
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()
Returns an array of index names as strings.
describeIndex()
indexName:
string
Name of the index to describe
Returns:
interface IndexStats {
  dimension: number;
  count: number;
  metric: "cosine" | "euclidean" | "dotproduct";
}
deleteIndex()
indexName:
string
Name of the index to delete
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()
indexName:
string
Name of the index containing the vector
id:
string
ID of the vector to delete
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
}
Error Handling
The store throws typed errors that can be caught:
try {
  await store.query({
    indexName: "index_name",
    queryVector: queryVector,
  });
} catch (error) {
  if (error instanceof VectorStoreError) {
    console.log(error.code); // 'connection_failed' | 'invalid_dimension' | etc
    console.log(error.details); // Additional error context
  }
}
Environment Variables
Required environment variables:
- ASTRA_DB_TOKEN: Your Astra DB API token
- ASTRA_DB_ENDPOINT: Your Astra DB API endpoint