A semantic search engine
Vela indexes your embeddings and answers queries by similarity in milliseconds, up to a billion vectors per index.
An index that is always current
You send vectors, Vela builds and maintains the index. k-nearest-neighbour search stays available while writes are happening.
The index is built on an HNSW graph spread across shards. Every write becomes queryable without manual reindexing. Namespaces isolate your datasets inside a single index.
HNSW index
A neighbourhood graph built continuously
Cosine similarity
k-NN search up to 4096 dimensions
Data residency
8 regions to choose from for each index
Metadata filters
Queries combining vectors and attributes
Explore by function
The engine in detail, from vector ingestion through to the query.
Vector indexing
Embedding ingestion, HNSW graph construction and continuous updates
Ingestion
- Batch upload, up to 4096 dimensions
- Insert, update, delete
- Writes queryable without reindexing
- Namespaces per dataset
Index structure
- Multi-layer HNSW graph
- Automatic sharding
- Up to 1 billion vectors per index
- Background compaction
Embedding models
- Works with any embedding provider
- Dimensions declared at creation
- Optional vector normalization
- In-place reindexing when you change model
Similarity queries
k-nearest-neighbour search, scores and control over the recall/latency trade-off
k-NN search
- Cosine similarity by default
- Dot product and Euclidean distance
- k set per query
- Similarity score on every result
Recall control
- Recall measured at 99.2 %
- Adjustable exploration parameter
- Recall/latency trade-off per query
- Validation sets for comparison
Response format
- Identifiers and scores
- Metadata returned on request
- Optional raw vectors
- Cursor-based pagination
Metadata filters
Combining structured constraints and vector search in a single query
Field types
- Strings and string lists
- Integers and floats
- Booleans
- Timestamps
Operators
- Equality and list membership
- Numeric comparisons
- AND / OR combinations
- Negation
Execution
- Filtering during graph traversal
- Recall preserved on selective filters
- Secondary indexes on frequent fields
- Namespace as the first partition level
Performance
Measured latency, single-index capacity and scaling
Latency
- p50 and p99 measured continuously
- p99 at 12 ms
- Measurements taken server side
- Latency budget set per query
Capacity
- 1 billion vectors per index
- Up to 4096 dimensions
- Shards added without downtime
- Write throughput sustained during queries
Scaling
- Read replicas per region
- Automatic adjustment to query volume
- Isolation per namespace
- Quotas per API key
Operations
Regions, security and integration into your existing pipelines
Regions
- 8 regions available
- Data residency of your choosing
- Optional cross-region replication
- Multilingual search across 40 languages
Security
- Encryption at rest and in transit
- Scoped API keys
- Exportable access logs
- Private network access
Integration
- HTTP and gRPC APIs
- Python, TypeScript and Go libraries
- RAG, product search, recommendation, deduplication
- Documentation at docs.vela.dev
What we measure
Values recorded on our demonstration indexes.
p99 latency
Response time for a k-NN search with a metadata filter, measured server side.
Vectors per index
Capacity of a single index, sharded automatically as writes come in.
Recall
Share of exact neighbours the HNSW graph finds on our validation sets.
Languages
Multilingual search over embeddings covering 40 languages in a single namespace.
Create your first index
Open an account, send your first vectors and run a similarity query. The documentation covers every call.