pub struct HashEmbedder { /* private fields */ }Expand description
Zero-dependency hash-based embedder.
Produces deterministic embeddings using FNV-1a hashing. Not semantic — captures lexical overlap only — but always available and extremely fast.
§Examples
use frankensearch_embed::HashEmbedder;
let embedder = HashEmbedder::default_384();
let vec = embedder.embed_sync("hello world");
assert_eq!(vec.len(), 384);Implementations§
Source§impl HashEmbedder
impl HashEmbedder
Sourcepub fn new(dimension: usize, algorithm: HashAlgorithm) -> Self
pub fn new(dimension: usize, algorithm: HashAlgorithm) -> Self
Sourcepub fn default_384() -> Self
pub fn default_384() -> Self
Default FNV-modular embedder with 384 dimensions.
Sourcepub fn default_256() -> Self
pub fn default_256() -> Self
Default FNV-modular embedder with 256 dimensions (fast-tier compatibility).
Sourcepub fn jl_384(seed: u64) -> Self
pub fn jl_384(seed: u64) -> Self
JL-projection embedder with 384 dimensions and the given seed.
Sourcepub fn embed_sync(&self, text: &str) -> Vec<f32>
pub fn embed_sync(&self, text: &str) -> Vec<f32>
Synchronous embedding (no async overhead needed for ~0.07ms).
Trait Implementations§
Source§impl Clone for HashEmbedder
impl Clone for HashEmbedder
Source§fn clone(&self) -> HashEmbedder
fn clone(&self) -> HashEmbedder
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for HashEmbedder
impl Debug for HashEmbedder
Source§impl Embedder for HashEmbedder
impl Embedder for HashEmbedder
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 HashEmbedder
impl RefUnwindSafe for HashEmbedder
impl Send for HashEmbedder
impl Sync for HashEmbedder
impl Unpin for HashEmbedder
impl UnsafeUnpin for HashEmbedder
impl UnwindSafe for HashEmbedder
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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).