pub struct CachedEmbedder { /* private fields */ }Expand description
Caching wrapper around any Embedder.
Intercepts embed() calls and returns cached vectors for previously-seen
query strings. All other trait methods delegate directly to the inner embedder.
§Construction
ⓘ
use frankensearch_embed::CachedEmbedder;
let inner: Arc<dyn Embedder> = /* ... */;
let cached = CachedEmbedder::new(inner, 128);Implementations§
Source§impl CachedEmbedder
impl CachedEmbedder
Sourcepub fn new(inner: Arc<dyn Embedder>, capacity: usize) -> Self
pub fn new(inner: Arc<dyn Embedder>, capacity: usize) -> Self
Wrap an embedder with a bounded query cache.
capacity controls the maximum number of cached embeddings before
FIFO eviction begins.
Sourcepub fn with_default_capacity(inner: Arc<dyn Embedder>) -> Self
pub fn with_default_capacity(inner: Arc<dyn Embedder>) -> Self
Wrap an embedder with the default capacity (128 entries).
Sourcepub fn cache_stats(&self) -> CacheStats
pub fn cache_stats(&self) -> CacheStats
Return a snapshot of cache statistics.
Sourcepub fn clear_cache(&self)
pub fn clear_cache(&self)
Clear all cached embeddings and reset statistics.
Trait Implementations§
Source§impl Debug for CachedEmbedder
impl Debug for CachedEmbedder
Source§impl Embedder for CachedEmbedder
impl Embedder for CachedEmbedder
Source§fn embed<'a>(&'a self, cx: &'a Cx, text: &'a str) -> SearchFuture<'a, Vec<f32>>
fn embed<'a>(&'a self, cx: &'a Cx, text: &'a str) -> SearchFuture<'a, Vec<f32>>
Embed a single text string into a vector of f32 floats. Read more
Source§fn embed_batch<'a>(
&'a self,
cx: &'a Cx,
texts: &'a [&'a str],
) -> SearchFuture<'a, Vec<Vec<f32>>>
fn embed_batch<'a>( &'a self, cx: &'a Cx, texts: &'a [&'a str], ) -> SearchFuture<'a, Vec<Vec<f32>>>
Embed a batch of text strings. Read more
Source§fn model_name(&self) -> &str
fn model_name(&self) -> &str
Human-readable model name.
Source§fn is_semantic(&self) -> bool
fn is_semantic(&self) -> bool
Whether this embedder produces semantically meaningful vectors. Read more
Source§fn category(&self) -> ModelCategory
fn category(&self) -> ModelCategory
The speed/quality category of this embedder.
Source§fn supports_mrl(&self) -> bool
fn supports_mrl(&self) -> bool
Whether this model supports Matryoshka Representation Learning
(dimension truncation for faster search with controlled quality loss).
Source§fn truncate_embedding(
&self,
embedding: &[f32],
target_dim: usize,
) -> Result<Vec<f32>, SearchError>
fn truncate_embedding( &self, embedding: &[f32], target_dim: usize, ) -> Result<Vec<f32>, SearchError>
Truncate and re-normalize embedding to
target_dim. Read moreAuto Trait Implementations§
impl !Freeze for CachedEmbedder
impl !RefUnwindSafe for CachedEmbedder
impl Send for CachedEmbedder
impl Sync for CachedEmbedder
impl Unpin for CachedEmbedder
impl UnsafeUnpin for CachedEmbedder
impl !UnwindSafe for CachedEmbedder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).