Enet4/faiss-rs

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

开放

#100 创建于 2025年9月4日

 (3 条评论) (0 个反应) (0 位负责人)Rust (50 个派生)auto 404
enhancementhelp wanted

仓库指标

星标
 (252 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

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).

贡献者指南