pub enum QueryVector {
Dense(Vec<f32>),
Sparse(SparseVector),
}Expand description
A query vector for KNN search.
Supports both dense and sparse vector formats.
§Variants
§Dense
Standard dense embeddings as a vector of floats.
use chroma_types::operator::QueryVector;
let dense = QueryVector::Dense(vec![0.1, 0.2, 0.3, 0.4]);§Sparse
Sparse vectors with explicit indices and values.
use chroma_types::operator::QueryVector;
use chroma_types::SparseVector;
let sparse = QueryVector::Sparse(SparseVector::new(
vec![0, 5, 10, 50], // indices
vec![0.5, 0.3, 0.8, 0.2], // values
).unwrap());§Examples
§Dense vector in KNN
use chroma_types::operator::{RankExpr, QueryVector, Key};
let rank = RankExpr::Knn {
query: QueryVector::Dense(vec![0.1, 0.2, 0.3]),
key: Key::Embedding,
limit: 100,
default: None,
return_rank: false,
};§Sparse vector in KNN
use chroma_types::operator::{RankExpr, QueryVector, Key};
use chroma_types::SparseVector;
let rank = RankExpr::Knn {
query: QueryVector::Sparse(SparseVector::new(
vec![1, 5, 10],
vec![0.5, 0.3, 0.8],
).unwrap()),
key: Key::field("sparse_embedding"),
limit: 100,
default: None,
return_rank: false,
};Variants§
Dense(Vec<f32>)
Sparse(SparseVector)
Trait Implementations§
Source§impl Clone for QueryVector
impl Clone for QueryVector
Source§fn clone(&self) -> QueryVector
fn clone(&self) -> QueryVector
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 moreSource§impl Debug for QueryVector
impl Debug for QueryVector
Source§impl<'de> Deserialize<'de> for QueryVector
impl<'de> Deserialize<'de> for QueryVector
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<SparseVector> for QueryVector
impl From<SparseVector> for QueryVector
Source§fn from(sparse: SparseVector) -> Self
fn from(sparse: SparseVector) -> Self
Converts to this type from the input type.
Source§impl PartialEq for QueryVector
impl PartialEq for QueryVector
Source§impl Serialize for QueryVector
impl Serialize for QueryVector
Source§impl TryFrom<QueryVector> for QueryVector
impl TryFrom<QueryVector> for QueryVector
Source§type Error = QueryConversionError
type Error = QueryConversionError
The type returned in the event of a conversion error.
Source§impl TryFrom<QueryVector> for QueryVector
impl TryFrom<QueryVector> for QueryVector
Source§type Error = QueryConversionError
type Error = QueryConversionError
The type returned in the event of a conversion error.
impl StructuralPartialEq for QueryVector
Auto Trait Implementations§
impl Freeze for QueryVector
impl RefUnwindSafe for QueryVector
impl Send for QueryVector
impl Sync for QueryVector
impl Unpin for QueryVector
impl UnwindSafe for QueryVector
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.