Struct faiss::IndexIVFInterface
- 
struct IndexIVFInterface : public faiss::Level1Quantizer
- Subclassed by faiss::IndexIVF, faiss::gpu::GpuIndexIVF - Public Functions - 
inline explicit IndexIVFInterface(Index *quantizer = nullptr, size_t nlist = 0)
 - 
virtual void search_preassigned(idx_t n, const float *x, idx_t k, const idx_t *assign, const float *centroid_dis, float *distances, idx_t *labels, bool store_pairs, const IVFSearchParameters *params = nullptr, IndexIVFStats *stats = nullptr) const = 0
- search a set of vectors, that are pre-quantized by the IVF quantizer. Fill in the corresponding heaps with the query results. The default implementation uses InvertedListScanners to do the search. - Parameters:
- n – nb of vectors to query 
- x – query vectors, size nx * d 
- assign – coarse quantization indices, size nx * nprobe 
- centroid_dis – distances to coarse centroids, size nx * nprobe 
- distance – output distances, size n * k 
- labels – output labels, size n * k 
- store_pairs – store inv list index + inv list offset instead in upper/lower 32 bit of result, instead of ids (used for reranking). 
- params – used to override the object’s search parameters 
- stats – search stats to be updated (can be null) 
 
 
 - 
virtual void range_search_preassigned(idx_t nx, const float *x, float radius, const idx_t *keys, const float *coarse_dis, RangeSearchResult *result, bool store_pairs = false, const IVFSearchParameters *params = nullptr, IndexIVFStats *stats = nullptr) const = 0
- Range search a set of vectors, that are pre-quantized by the IVF quantizer. Fill in the RangeSearchResults results. The default implementation uses InvertedListScanners to do the search. - Parameters:
- n – nb of vectors to query 
- x – query vectors, size nx * d 
- assign – coarse quantization indices, size nx * nprobe 
- centroid_dis – distances to coarse centroids, size nx * nprobe 
- result – Output results 
- store_pairs – store inv list index + inv list offset instead in upper/lower 32 bit of result, instead of ids (used for reranking). 
- params – used to override the object’s search parameters 
- stats – search stats to be updated (can be null) 
 
 
 - 
inline virtual ~IndexIVFInterface()
 - 
void train_q1(size_t n, const float *x, bool verbose, MetricType metric_type)
- Trains the quantizer and calls train_residual to train sub-quantizers. 
 - 
size_t coarse_code_size() const
- compute the number of bytes required to store list ids 
 - 
void encode_listno(idx_t list_no, uint8_t *code) const
 - 
idx_t decode_listno(const uint8_t *code) const
 - Public Members - 
size_t nprobe = 1
- number of probes at query time 
 - 
size_t max_codes = 0
- max nb of codes to visit to do a query 
 - 
Index *quantizer = nullptr
- quantizer that maps vectors to inverted lists 
 - 
size_t nlist = 0
- number of inverted lists 
 - 
char quantizer_trains_alone = 0
- = 0: use the quantizer as index in a kmeans training = 1: just pass on the training set to the train() of the quantizer = 2: kmeans training on a flat index + add the centroids to the quantizer 
 - 
bool own_fields = false
- whether object owns the quantizer 
 - 
ClusteringParameters cp
- to override default clustering params 
 - 
Index *clustering_index = nullptr
- to override index used during clustering 
 
- 
inline explicit IndexIVFInterface(Index *quantizer = nullptr, size_t nlist = 0)