lance_index::vector::quantizer

Trait Quantization

source
pub trait Quantization:
    Send
    + Sync
    + Debug
    + DeepSizeOf
    + Into<Quantizer> {
    type BuildParams: QuantizerBuildParams;
    type Metadata: QuantizerMetadata + Send + Sync;
    type Storage: QuantizerStorage<Metadata = Self::Metadata> + VectorStore + Debug;

    // Required methods
    fn build(
        data: &dyn Array,
        distance_type: DistanceType,
        params: &Self::BuildParams,
    ) -> Result<Self>;
    fn code_dim(&self) -> usize;
    fn column(&self) -> &'static str;
    fn quantize(&self, vectors: &dyn Array) -> Result<ArrayRef>;
    fn metadata_key() -> &'static str;
    fn quantization_type() -> QuantizationType;
    fn metadata(&self, _: Option<QuantizationMetadata>) -> Result<Value>;
    fn from_metadata(
        metadata: &Self::Metadata,
        distance_type: DistanceType,
    ) -> Result<Quantizer>;

    // Provided method
    fn use_residual(_: DistanceType) -> bool { ... }
}

Required Associated Types§

Required Methods§

source

fn build( data: &dyn Array, distance_type: DistanceType, params: &Self::BuildParams, ) -> Result<Self>

source

fn code_dim(&self) -> usize

source

fn column(&self) -> &'static str

source

fn quantize(&self, vectors: &dyn Array) -> Result<ArrayRef>

source

fn metadata_key() -> &'static str

source

fn quantization_type() -> QuantizationType

source

fn metadata(&self, _: Option<QuantizationMetadata>) -> Result<Value>

source

fn from_metadata( metadata: &Self::Metadata, distance_type: DistanceType, ) -> Result<Quantizer>

Provided Methods§

Object Safety§

This trait is not object safe.

Implementors§