Faiss
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
Public Member Functions | Public Attributes | List of all members
faiss::IndexShards Struct Reference

#include <MetaIndexes.h>

Inheritance diagram for faiss::IndexShards:
faiss::Index

Public Member Functions

 IndexShards (idx_t d, bool threaded=false, bool successive_ids=true)
 
void add_shard (Index *)
 
void sync_with_shard_indexes ()
 
Indexat (int i)
 
virtual void add (idx_t n, const float *x) override
 supported only for sub-indices that implement add_with_ids
 
virtual void add_with_ids (idx_t n, const float *x, const long *xids) override
 
virtual void search (idx_t n, const float *x, idx_t k, float *distances, idx_t *labels) const override
 
virtual void train (idx_t n, const float *x) override
 
virtual void reset () override
 removes all elements from the database.
 
virtual void set_typename () override
 
- Public Member Functions inherited from faiss::Index
 Index (idx_t d=0, MetricType metric=METRIC_INNER_PRODUCT)
 
virtual void range_search (idx_t n, const float *x, float radius, RangeSearchResult *result) const
 
void assign (idx_t n, const float *x, idx_t *labels, idx_t k=1)
 
virtual long remove_ids (const IDSelector &sel)
 
virtual void reconstruct (idx_t key, float *recons) const
 
virtual void reconstruct_n (idx_t i0, idx_t ni, float *recons) const
 
void compute_residual (const float *x, float *residual, idx_t key) const
 
void display () const
 
virtual std::string get_typename () const
 

Public Attributes

std::vector< Index * > shard_indexes
 
bool own_fields
 
bool threaded
 should the sub-indexes be deleted along with this?
 
bool successive_ids
 
- Public Attributes inherited from faiss::Index
std::string index_typename
 
int d
 vector dimension
 
idx_t ntotal
 total nb of indexed vectors
 
bool verbose
 verbosity level
 
bool is_trained
 set if the Index does not require training, or if training is done already
 
MetricType metric_type
 type of metric this index uses for search
 

Additional Inherited Members

- Public Types inherited from faiss::Index
typedef long idx_t
 all indices are this type
 

Detailed Description

Index that concatenates the results from several sub-indexes

Definition at line 58 of file MetaIndexes.h.

Constructor & Destructor Documentation

faiss::IndexShards::IndexShards ( idx_t  d,
bool  threaded = false,
bool  successive_ids = true 
)
explicit
Parameters
threadeddo we use one thread per sub_index or do queries sequentially?
successive_idsshould we shift the returned ids by the size of each sub-index or return them as they are?

Definition at line 280 of file MetaIndexes.cpp.

Member Function Documentation

void faiss::IndexShards::add_with_ids ( idx_t  n,
const float *  x,
const long *  xids 
)
overridevirtual

Cases (successive_ids, xids):

  • true, non-NULL ERROR: it makes no sense to pass in ids and request them to be shifted
  • true, NULL OK, but should be called only once (calls add() on sub-indexes).
  • false, non-NULL OK: will call add_with_ids with passed in xids distributed evenly over shards
  • false, NULL OK: will call add_with_ids on each sub-index, starting at ntotal

Reimplemented from faiss::Index.

Definition at line 350 of file MetaIndexes.cpp.

void faiss::IndexShards::search ( idx_t  n,
const float *  x,
idx_t  k,
float *  distances,
idx_t labels 
) const
overridevirtual

query n vectors of dimension d to the index.

return at most k vectors. If there are not enough results for a query, the result array is padded with -1s.

Parameters
xinput vectors to search, size n * d
labelsoutput labels of the NNs, size n*k
distancesoutput pairwise distances, size n*k

Implements faiss::Index.

Definition at line 408 of file MetaIndexes.cpp.

void faiss::IndexShards::train ( idx_t  n,
const float *  x 
)
overridevirtual

Perform training on a representative set of vectors

Parameters
nnb of training vectors
xtraining vecors, size n * d

Reimplemented from faiss::Index.

Definition at line 310 of file MetaIndexes.cpp.


The documentation for this struct was generated from the following files: