Vector Search Module
The Vector Search module provides similarity search capabilities for embeddings, enabling AI/ML applications like RAG (Retrieval Augmented Generation) and semantic search.
What is it?
VectorSearch is a class that provides methods for storing and searching vector embeddings. It supports cosine similarity, euclidean distance, and dot product calculations, with optimizations for precomputed magnitudes.
Why do you need it?
- AI/ML Applications: Store and search embeddings for RAG systems
- Semantic Search: Find similar documents based on meaning
- Recommendations: Find similar items based on embeddings
- Performance: Optimized with precomputed magnitudes and caching
How it works
VectorSearch stores embeddings as arrays in documents and uses AQL to compute similarity scores (cosine, euclidean, or dot product). It can precompute vector magnitudes for faster cosine similarity calculations and supports filtering and caching.
Exports
VectorSearch- Main VectorSearch classVectorSearchOptions- TypeScript type for search optionsEmbeddingOptions- TypeScript type for embedding options
Method Signatures
constructor(database: Database)- Create VectorSearch instancestatic computeMagnitude(vector: number[]): number- Compute L2 normcreateVectorIndex(collectionName: string, field: string, options?: EmbeddingOptions): Promise<void>similaritySearch(collectionName: string, queryVector: number[], options?: VectorSearchOptions): Promise<any[]>store(collectionName: string, document: any): Promise<any>
TypeScript Types
interface VectorSearchOptions {
limit?: number;
threshold?: number;
distance?: 'cosine' | 'euclidean' | 'dot';
filter?: Record;
usePrecomputedMagnitudes?: boolean;
cache?: CacheManager;
}
interface EmbeddingOptions {
field?: string;
dimensions?: number;
}
📖 For usage examples and best practices: See Vector Search Guide for detailed documentation, examples, and best practices.