Class SqlVectorStore

SQL-backed vector store implementation.

Uses @framers/sql-storage-adapter for cross-platform persistence. Stores embeddings as JSON blobs and computes similarity in application code (with optional native vector extensions for PostgreSQL).

SqlVectorStore

Implements

Example

const store = new SqlVectorStore();

await store.initialize({
id: 'sql-vector-store',
type: 'sql',
storage: {
filePath: './vectors.db',
priority: ['better-sqlite3', 'sqljs']
},
enableFullTextSearch: true
});

// Create a collection
await store.createCollection('documents', 1536);

// Upsert documents
await store.upsert('documents', [{
id: 'doc-1',
embedding: [...], // 1536-dim vector
textContent: 'Example document content',
metadata: { author: 'Alice', category: 'tech' }
}]);

// Query by similarity
const results = await store.query('documents', queryEmbedding, { topK: 5 });

Implements

Constructors

Methods

  • Performs hybrid search combining vector similarity with keyword matching.

    Parameters

    • collectionName: string

      Collection to search

    • queryEmbedding: number[]

      Query vector for semantic search

    • queryText: string

      Text query for keyword search

    • Optional options: QueryOptions & {
          alpha?: number;
      }

      Search options

    Returns Promise<QueryResult>

    Combined search results

    Example

    const results = await store.hybridSearch(
    'documents',
    queryEmbedding,
    'machine learning tutorial',
    { topK: 10, alpha: 0.7 } // 70% vector, 30% keyword
    );