pub enum Predicate {
KeyMatch {
field: String,
},
FieldEqual {
field: String,
},
Overlap {
field: String,
min: f64,
},
All(Vec<Predicate>),
NumericWithin {
field: String,
tolerance: f64,
},
GeoRadius {
field: String,
km: f64,
},
VectorSimilar {
field: String,
min: f64,
},
Any(Vec<Predicate>),
}Expand description
Score-combination conventions for composed predicates:
-
All(parts)— minimum of the individual branch scores. Every branch must match; the weakest link controls the edge weight. Verified by testall_takes_min_score_and_requires_every_part. -
Any(parts)— maximum of the satisfied branches’ scores. At least one branch must match; the strongest match controls the edge weight. Verified by testany_score_is_max_when_both_branches_match.
These conventions are opposites: All is pessimistic (min), Any is
optimistic (max). Nesting is allowed up to depth
MAX_PREDICATE_NESTING_DEPTH; validate() returns a named error beyond
that.
Variants§
KeyMatch
FieldEqual
Overlap
All(Vec<Predicate>)
NumericWithin
GeoRadius
VectorSimilar
Any(Vec<Predicate>)
OR composition: matches when at least one branch matches.
Score = max over satisfied branches (see doc comment on Predicate).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Predicate
impl<'de> Deserialize<'de> for Predicate
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
impl StructuralPartialEq for Predicate
Auto Trait Implementations§
impl Freeze for Predicate
impl RefUnwindSafe for Predicate
impl Send for Predicate
impl Sync for Predicate
impl Unpin for Predicate
impl UnsafeUnpin for Predicate
impl UnwindSafe for Predicate
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