pub struct UnifiedQueryRequest {
pub rank_by: Value,
pub top_k: usize,
pub filter: Option<Value>,
pub include_metadata: bool,
pub include_vectors: bool,
pub distance_metric: DistanceMetric,
}Expand description
Unified query request with flexible ranking options (Turbopuffer-inspired)
§Example
use dakera_client::UnifiedQueryRequest;
// Vector ANN search
let request = UnifiedQueryRequest::vector_search(vec![0.1, 0.2, 0.3], 10);
// Full-text BM25 search
let request = UnifiedQueryRequest::fulltext_search("content", "hello world", 10);
// Custom rank_by with filters
let request = UnifiedQueryRequest::vector_search(vec![0.1, 0.2, 0.3], 10)
.with_filter(serde_json::json!({"category": {"$eq": "science"}}));Fields§
§rank_by: ValueHow to rank documents (required)
top_k: usizeNumber of results to return
filter: Option<Value>Optional metadata filter
include_metadata: boolInclude metadata in results
include_vectors: boolInclude vectors in results
distance_metric: DistanceMetricDistance metric for vector search (default: cosine)
Implementations§
Source§impl UnifiedQueryRequest
impl UnifiedQueryRequest
Sourcepub fn vector_search(query_vector: Vec<f32>, top_k: usize) -> Self
pub fn vector_search(query_vector: Vec<f32>, top_k: usize) -> Self
Create a new unified query request with vector ANN search
Sourcepub fn vector_knn_search(query_vector: Vec<f32>, top_k: usize) -> Self
pub fn vector_knn_search(query_vector: Vec<f32>, top_k: usize) -> Self
Create a new unified query request with vector kNN search
Sourcepub fn fulltext_search(
field: impl Into<String>,
query: impl Into<String>,
top_k: usize,
) -> Self
pub fn fulltext_search( field: impl Into<String>, query: impl Into<String>, top_k: usize, ) -> Self
Create a new unified query request with full-text BM25 search
Sourcepub fn attribute_order(
field: impl Into<String>,
direction: SortDirection,
top_k: usize,
) -> Self
pub fn attribute_order( field: impl Into<String>, direction: SortDirection, top_k: usize, ) -> Self
Create a new unified query request with attribute ordering
Sourcepub fn with_rank_by(rank_by: Value, top_k: usize) -> Self
pub fn with_rank_by(rank_by: Value, top_k: usize) -> Self
Create a unified query with a raw rank_by JSON value
Sourcepub fn with_filter(self, filter: Value) -> Self
pub fn with_filter(self, filter: Value) -> Self
Add a filter to the query
Sourcepub fn include_metadata(self, include: bool) -> Self
pub fn include_metadata(self, include: bool) -> Self
Set whether to include metadata
Sourcepub fn include_vectors(self, include: bool) -> Self
pub fn include_vectors(self, include: bool) -> Self
Set whether to include vector values
Sourcepub fn with_distance_metric(self, metric: DistanceMetric) -> Self
pub fn with_distance_metric(self, metric: DistanceMetric) -> Self
Set the distance metric
Sourcepub fn with_top_k(self, top_k: usize) -> Self
pub fn with_top_k(self, top_k: usize) -> Self
Set the number of results to return
Trait Implementations§
Source§impl Clone for UnifiedQueryRequest
impl Clone for UnifiedQueryRequest
Source§fn clone(&self) -> UnifiedQueryRequest
fn clone(&self) -> UnifiedQueryRequest
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 UnifiedQueryRequest
impl Debug for UnifiedQueryRequest
Source§impl<'de> Deserialize<'de> for UnifiedQueryRequest
impl<'de> Deserialize<'de> for UnifiedQueryRequest
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
Auto Trait Implementations§
impl Freeze for UnifiedQueryRequest
impl RefUnwindSafe for UnifiedQueryRequest
impl Send for UnifiedQueryRequest
impl Sync for UnifiedQueryRequest
impl Unpin for UnifiedQueryRequest
impl UnsafeUnpin for UnifiedQueryRequest
impl UnwindSafe for UnifiedQueryRequest
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