pub struct SearchResult {
pub experience: Experience,
pub similarity: f32,
}Expand description
A search result pairing an experience with its similarity score.
Returned by PulseDB::search_similar() and
PulseDB::search_similar_filtered().
Results are sorted by similarity descending (most similar first).
§Similarity Score
The similarity field is computed as 1.0 - cosine_distance, where
cosine distance ranges from 0.0 (identical) to 2.0 (opposite). This
gives a similarity range of [-1.0, 1.0], where:
1.0= identical vectors0.0= orthogonal vectors-1.0= opposite vectors
In practice, experience embeddings from transformer models (e.g., all-MiniLM-L6-v2) produce non-negative values, so similarity is typically in [0.0, 1.0].
§Example
let results = db.search_similar(collective_id, &query_embedding, 10)?;
for result in &results {
println!(
"similarity={:.3}: {}",
result.similarity, result.experience.content
);
}Fields§
§experience: ExperienceThe full experience record.
similarity: f32Similarity score (1.0 - cosine_distance).
Higher is more similar. Typically in [0.0, 1.0] for transformer embeddings. Theoretical range is [-1.0, 1.0].
Trait Implementations§
Source§impl Clone for SearchResult
impl Clone for SearchResult
Source§fn clone(&self) -> SearchResult
fn clone(&self) -> SearchResult
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SearchResult
impl RefUnwindSafe for SearchResult
impl Send for SearchResult
impl Sync for SearchResult
impl Unpin for SearchResult
impl UnsafeUnpin for SearchResult
impl UnwindSafe for SearchResult
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: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more