Skip to content

Module HTM::LongTermMemory::VectorSearch

Defined in lib/htm/long_term_memory/vector_search.rb

Vector similarity search using pgvector

Performs semantic search by: 1. Generating query embedding client-side 2. Using pgvector cosine distance for similarity ranking 3. Supporting timeframe and metadata filtering

Results are cached for performance.

Security: All queries use parameterized placeholders to prevent SQL injection.

Constants

MAX_VECTOR_LIMIT

Maximum results to prevent DoS via unbounded queries

Public Instance Methods

search(timeframe:, query:, limit:, embedding_service:, metadata: {})

Vector similarity search - @param timeframe [nil, Range, Array] Time range(s) to search (nil = no filter) - @param query [String] Search query - @param limit [Integer] Maximum results (capped at MAX_VECTOR_LIMIT) - @param embedding_service [Object] Service to generate embeddings - @param metadata [Hash] Filter by metadata fields (default: {}) - @return [Array] Matching nodes