Skip to main content

Tuning

Struct Tuning 

Source
pub struct Tuning {
    pub posting: usize,
    pub probe: usize,
    pub rerank: usize,
    pub sweep: usize,
    pub widen: usize,
}
Expand description

The knobs, all of which have a defensible default and none of which anybody should have to touch.

Fields§

§posting: usize

How many members a partition wants. It splits past twice this and merges under a quarter of it.

This is what sets how many partitions a collection ends up with, and so it trades the cost of ranking centroids against the cost of scanning a posting. A few hundred is where those two are near enough even.

§probe: usize

How many partitions a search scans.

§rerank: usize

How many candidates are reranked per answer asked for.

Four is the number the recall table was measured at: one bit codes put the true ten inside the best forty better than 98 times in a hundred.

§sweep: usize

How many neighbouring partitions a split sweeps for members that should move.

This is the cost of never drifting. Zero would make a split free and would make recall fall off over a long write stream, which is the thing this index exists to not do.

§widen: usize

How much further than probe a filtered search will go looking when the filter is selective enough that the nearest partitions do not hold k members that pass, as a multiple of probe.

This is the only knob here with a genuinely hard trade behind it. Too small and a filter matching one document in a thousand returns nothing while the answer sat two partitions further out. Too large and the same filter reads the whole collection to prove there is nothing there.

Trait Implementations§

Source§

impl Clone for Tuning

Source§

fn clone(&self) -> Tuning

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Tuning

Source§

impl Debug for Tuning

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Tuning

Source§

fn default() -> Tuning

Returns the “default value” for a type. Read more
Source§

impl Eq for Tuning

Source§

impl PartialEq for Tuning

Source§

fn eq(&self, other: &Tuning) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Tuning

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.