pub struct BinaryScannModel { /* private fields */ }Expand description
Index-generation-scoped packed Hamming routing model.
Implementations§
Source§impl BinaryScannModel
impl BinaryScannModel
pub fn to_artifact( &self, generation: u64, trained_vectors: u64, ) -> ScannResult<ScannTrainedArtifact>
pub fn from_artifact(artifact: &ScannTrainedArtifact) -> ScannResult<Self>
pub fn train( training: &BinaryScannTraining, codes: &[u8], num_vectors: usize, index_label: &str, ) -> ScannResult<Self>
pub fn train_with_stats( training: &BinaryScannTraining, codes: &[u8], num_vectors: usize, index_label: &str, ) -> ScannResult<(Self, BinaryScannTrainingStats)>
pub fn dim_bits(&self) -> u32
pub fn num_leaves(&self) -> u32
pub fn fingerprint(&self) -> u64
pub fn validate(&self) -> ScannResult<()>
Sourcepub fn probe(
&self,
query: &[u8],
nprobe: usize,
beam_width: usize,
scratch: &mut BinaryScannSearchScratch,
) -> ScannResult<BinaryScannProbePlan>
pub fn probe( &self, query: &[u8], nprobe: usize, beam_width: usize, scratch: &mut BinaryScannSearchScratch, ) -> ScannResult<BinaryScannProbePlan>
Route once against the global tree. The resulting plan can be reused across every immutable segment in the active generation.
pub fn assign( &self, code: &[u8], scratch: &mut BinaryScannSearchScratch, ) -> ScannResult<u32>
Sourcepub fn spill_assignment(
&self,
code: &[u8],
scratch: &mut BinaryScannSearchScratch,
) -> ScannResult<BinaryScannSpillAssignment>
pub fn spill_assignment( &self, code: &[u8], scratch: &mut BinaryScannSearchScratch, ) -> ScannResult<BinaryScannSpillAssignment>
Choose the normal primary leaf and the best alternate leaf reachable by a small widened tree probe. Packed bits do not have a meaningful float residual projection, so binary spilling uses exact centroid Hamming distance while retaining SOAR’s one-secondary storage policy.
Sourcepub fn search_segments(
&self,
query: &[u8],
k: usize,
nprobe: usize,
beam_width: usize,
segments: &[(&BinaryScannSegment, u32)],
scratch: &mut BinaryScannSearchScratch,
) -> ScannResult<Vec<BinaryScannHit>>
pub fn search_segments( &self, query: &[u8], k: usize, nprobe: usize, beam_width: usize, segments: &[(&BinaryScannSegment, u32)], scratch: &mut BinaryScannSearchScratch, ) -> ScannResult<Vec<BinaryScannHit>>
Search any number of compatible segments with one shared routing plan.
doc_base rebases segment-local IDs without touching their payload.
Trait Implementations§
Source§impl Clone for BinaryScannModel
impl Clone for BinaryScannModel
Source§fn clone(&self) -> BinaryScannModel
fn clone(&self) -> BinaryScannModel
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for BinaryScannModel
impl RefUnwindSafe for BinaryScannModel
impl Send for BinaryScannModel
impl Sync for BinaryScannModel
impl Unpin for BinaryScannModel
impl UnsafeUnpin for BinaryScannModel
impl UnwindSafe for BinaryScannModel
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DropFlavorWrapper<T> for T
impl<T> DropFlavorWrapper<T> for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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 more