Skip to main content

Module recall

Module recall 

Source
Expand description

Memory recall (search) service.

Searches for memories using hybrid (vector + BM25) search with RRF fusion.

ยงExamples

Text search with BM25:

use subcog::services::RecallService;
use subcog::models::{SearchFilter, SearchMode};
use subcog::storage::index::SqliteBackend;

let index = SqliteBackend::in_memory()?;
let service = RecallService::with_index(index);

let filter = SearchFilter::new();
let results = service.search("database architecture", SearchMode::Text, &filter, 10)?;

for hit in &results.memories {
    println!("{}: {:.2}", hit.memory.id.as_str(), hit.score);
}

Filtering by namespace:

use subcog::services::RecallService;
use subcog::models::{Namespace, SearchFilter, SearchMode};
use subcog::storage::index::SqliteBackend;

let index = SqliteBackend::in_memory()?;
let service = RecallService::with_index(index);

let filter = SearchFilter::new().with_namespace(Namespace::Decisions);
let results = service.search("PostgreSQL", SearchMode::Text, &filter, 5)?;

Structsยง

RecallService
Service for searching and retrieving memories.

Constantsยง

DEFAULT_SEARCH_TIMEOUT_MS
Default search timeout in milliseconds (5 seconds).

Functionsยง

create_placeholder_memory ๐Ÿ”’
Creates a placeholder memory for search results.
domain_label ๐Ÿ”’
Returns a domain label for metrics, avoiding allocations for common cases.
normalize_scores ๐Ÿ”’
Normalizes search result scores to the 0.0-1.0 range.
record_recall_events ๐Ÿ”’

Type Aliasesยง

RrfEntry ๐Ÿ”’
RRF fusion entry storing indices instead of cloning SearchHit.