pub struct SearchParams {
pub k: usize,
pub ef: Option<usize>,
pub metric: DistanceMetric,
pub filter: Option<Filter>,
}Expand description
The parameters of a nearest-neighbor search.
k is how many results to return, metric is how distance is measured,
ef is an optional search-breadth knob (the candidate-list size some
approximate indexes expose; ignored by exact search), and filter is an
optional metadata predicate restricting which records are eligible. Start
from SearchParams::new and set the optional fields as needed.
§Examples
use iqdb_types::{DistanceMetric, Filter, SearchParams, Value};
let params = SearchParams {
filter: Some(Filter::eq("published", Value::Bool(true))),
..SearchParams::new(10, DistanceMetric::Cosine)
};
assert_eq!(params.k, 10);
assert_eq!(params.metric, DistanceMetric::Cosine);
assert_eq!(params.ef, None);
assert!(params.filter.is_some());Fields§
§k: usizeThe number of nearest neighbors to return.
ef: Option<usize>Optional search breadth (candidate-list size) for approximate indexes;
None lets the engine choose, and exact search ignores it.
metric: DistanceMetricThe distance metric used to rank candidates.
filter: Option<Filter>Optional metadata predicate restricting which records are eligible.
Implementations§
Source§impl SearchParams
impl SearchParams
Sourcepub fn new(k: usize, metric: DistanceMetric) -> Self
pub fn new(k: usize, metric: DistanceMetric) -> Self
Creates parameters for a top-k search under metric, with no search
breadth and no filter.
§Examples
use iqdb_types::{DistanceMetric, SearchParams};
let params = SearchParams::new(5, DistanceMetric::Euclidean);
assert_eq!(params.k, 5);
assert_eq!(params.ef, None);
assert!(params.filter.is_none());Trait Implementations§
Source§impl Clone for SearchParams
impl Clone for SearchParams
Source§fn clone(&self) -> SearchParams
fn clone(&self) -> SearchParams
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SearchParams
impl Debug for SearchParams
Source§impl<'de> Deserialize<'de> for SearchParams
impl<'de> Deserialize<'de> for SearchParams
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>,
Source§impl PartialEq for SearchParams
impl PartialEq for SearchParams
Source§fn eq(&self, other: &SearchParams) -> bool
fn eq(&self, other: &SearchParams) -> bool
self and other values to be equal, and is used by ==.