Enet4/faiss-rs

Dynamically casting the wrapped quantizer when casting a IndexImpl to a IVFScalarQuantizerIndex?

Ouverte

#100 ouverte le 4 sept. 2025

 (3 commentaires) (0 réaction) (0 personne assignée)Rust (50 forks)auto 404
enhancementhelp wanted

Métriques du dépôt

Stars
 (252 étoiles)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

So I'm trying to read an IVFScalarQuantizer index from a file but it seems like IndexImpl::into_ivf_scalar_quantizer allows me to build a IVFScalarQuantizerIndex<IndexImpl>, but then there is no way to downcast the wrapped quantizer into a concrete type like FlatIndex (to get the ConcurrentIndex impl for it).

Thoughts on letting the quantizer also be specified during the conversion?

- pub fn into_ivf_scalar_quantizer(self) -> Result<IVFScalarQuantizerIndexImpl<IndexImpl>>
+ pub fn into_ivf_scalar_quantizer<Q>(self) -> Result<IVFScalarQuantizerIndexImpl<Q>>

This would allow the caller to assume a concrete type for the quantizer, which would then enable other traits like ConcurrentIndex (if the quantizer index is itself a ConcurrentIndex).

Guide contributeur