pub trait IndexBackend: Send + Sync {
// Required methods
fn index(&mut self, memory: &Memory) -> Result<()>;
fn remove(&mut self, id: &MemoryId) -> Result<bool>;
fn search(
&self,
query: &str,
filter: &SearchFilter,
limit: usize,
) -> Result<Vec<(MemoryId, f32)>>;
fn clear(&mut self) -> Result<()>;
fn list_all(
&self,
filter: &SearchFilter,
limit: usize,
) -> Result<Vec<(MemoryId, f32)>>;
fn get_memory(&self, id: &MemoryId) -> Result<Option<Memory>>;
// Provided method
fn reindex(&mut self, memories: &[Memory]) -> Result<()> { ... }
}Expand description
Trait for index layer backends.
Index backends provide full-text search capabilities using BM25 or similar algorithms.
Required Methods§
Sourcefn search(
&self,
query: &str,
filter: &SearchFilter,
limit: usize,
) -> Result<Vec<(MemoryId, f32)>>
fn search( &self, query: &str, filter: &SearchFilter, limit: usize, ) -> Result<Vec<(MemoryId, f32)>>
Searches for memories matching a text query.
Returns memory IDs with their BM25 scores, ordered by relevance.
§Errors
Returns an error if the search operation fails.