Skip to main content
Search for documents using semantic similarity.

Signature

async search(query: string, options?: SearchOptions<T>): Promise<SearchResult<T>[]>

Parameters

ParameterTypeDescription
querystringNatural language search query
optionsSearchOptions<T>Optional search configuration

SearchOptions

interface SearchOptions<T extends DocumentMetadata> {
  topK?: number;           // Maximum results (default: 10)
  threshold?: number;      // Minimum similarity 0-1 (default: 0.3)
  filter?: (metadata: T) => boolean;  // Metadata filter
  includeVector?: boolean; // Include embedding vectors (default: false)
}

Return Value

interface SearchResult<T extends DocumentMetadata> {
  id: string;           // Document ID
  score: number;        // Similarity score (0-1)
  metadata: T;          // Document metadata
  text: string;         // Original document text
  vector?: Float32Array; // Embedding (if includeVector: true)
}
Results are sorted by score in descending order (highest similarity first).

Examples

const results = await db.search('find users');

for (const result of results) {
  console.log(`${result.id}: ${result.score.toFixed(2)}`);
}

With Options

const results = await db.search('payment processing', {
  topK: 5,
  threshold: 0.5,
  filter: (m) => m.owner === 'billing' && !m.deprecated,
});

With Vectors

const results = await db.search('query', {
  includeVector: true,
});

console.log(results[0].vector); // Float32Array

Errors

ErrorCondition
VectoriaNotInitializedErrorDatabase not initialized
QueryValidationErrorEmpty query, invalid topK, or invalid threshold

Error Handling

import { QueryValidationError } from 'vectoriadb';

try {
  const results = await db.search(query, { topK: -1 });
} catch (error) {
  if (error instanceof QueryValidationError) {
    console.error('Invalid search:', error.message);
  }
}

Performance

  • Brute-force: O(n) - scans all documents
  • HNSW: O(log n) - approximate nearest neighbor
Enable HNSW for datasets > 10,000 documents.

add()

Add documents

filter()

Non-semantic filtering

SearchOptions

Search interface