pub struct VectorSearchBuilder { /* private fields */ }Expand description
Fluent builder for vector search queries.
§Examples
use prax_pgvector::query::VectorSearchBuilder;
use prax_pgvector::{Embedding, DistanceMetric};
let query = VectorSearchBuilder::new("documents", "embedding")
.query(Embedding::new(vec![0.1, 0.2, 0.3]))
.metric(DistanceMetric::Cosine)
.limit(10)
.ef_search(200)
.build();Implementations§
Source§impl VectorSearchBuilder
impl VectorSearchBuilder
Sourcepub fn new(table: impl Into<String>, column: impl Into<String>) -> Self
pub fn new(table: impl Into<String>, column: impl Into<String>) -> Self
Create a new search builder for a table and vector column.
Sourcepub fn metric(self, metric: DistanceMetric) -> Self
pub fn metric(self, metric: DistanceMetric) -> Self
Set the distance metric.
Sourcepub fn where_clause(self, condition: impl Into<String>) -> Self
pub fn where_clause(self, condition: impl Into<String>) -> Self
Add a WHERE condition.
Sourcepub fn max_distance(self, distance: f64) -> Self
pub fn max_distance(self, distance: f64) -> Self
Set the maximum distance (radius search).
Sourcepub fn min_distance(self, distance: f64) -> Self
pub fn min_distance(self, distance: f64) -> Self
Set the minimum distance.
Sourcepub fn without_distance(self) -> Self
pub fn without_distance(self) -> Self
Don’t include the distance in the results.
Sourcepub fn distance_alias(self, alias: impl Into<String>) -> Self
pub fn distance_alias(self, alias: impl Into<String>) -> Self
Set a custom distance column alias.
Sourcepub fn then_order_by(self, clause: impl Into<String>) -> Self
pub fn then_order_by(self, clause: impl Into<String>) -> Self
Add an additional ORDER BY clause (after distance).
Sourcepub fn build(self) -> VectorSearchQuery
pub fn build(self) -> VectorSearchQuery
Build the vector search query.
§Panics
Panics if no query vector has been set. Use Self::try_build for
a non-panicking alternative.
Sourcepub fn try_build(self) -> Option<VectorSearchQuery>
pub fn try_build(self) -> Option<VectorSearchQuery>
Try to build the vector search query.
Returns None if no query vector has been set.
Auto Trait Implementations§
impl Freeze for VectorSearchBuilder
impl RefUnwindSafe for VectorSearchBuilder
impl Send for VectorSearchBuilder
impl Sync for VectorSearchBuilder
impl Unpin for VectorSearchBuilder
impl UnsafeUnpin for VectorSearchBuilder
impl UnwindSafe for VectorSearchBuilder
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