pub enum IndexType {
Hnsw(HnswConfig),
IvfPq(IvfPqConfig),
Auto,
RaBitQ(RaBitQConfig),
}Expand description
Which index algorithm to embed in the AILK section.
Variants§
Hnsw(HnswConfig)
HNSW (default). Best recall for in-memory workloads.
IvfPq(IvfPqConfig)
IVF-PQ. Best for S3: 10-100x smaller index, sequential inverted-list reads.
Auto
Detect hardware at write time and pick the best index automatically.
Chooses IVF-PQ when a GPU or ≥8 CPU cores are available AND the dataset has ≥5 000 vectors. Falls back to HNSW otherwise (local/low-power hardware).
RaBitQ(RaBitQConfig)
RaBitQ flat index. Best when storage is the primary constraint:
1 bit/dim = 16× smaller than F16. Better recall than naive binary
quantization via random rotation + unbiased IP estimator.
Recommended: use with keep_raw = true + rerank_factor ≥ 3 at search time.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for IndexType
impl RefUnwindSafe for IndexType
impl Send for IndexType
impl Sync for IndexType
impl Unpin for IndexType
impl UnsafeUnpin for IndexType
impl UnwindSafe for IndexType
Blanket Implementations§
impl<T> Allocation for T
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> 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