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ยง
- Recall
Service - 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