#include <mplsh.h>
Inheritance diagram for lshkit::MultiProbeLshIndex< KEY >:
Public Types | |
typedef LshIndex< MultiProbeLsh, KEY > | Super |
typedef Super::Parameter | Parameter |
typedef Super::Domain | Domain |
typedef KEY | Key |
Public Member Functions | |
MultiProbeLshIndex () | |
Constructor. | |
template<typename Engine> | |
void | init (const Parameter ¶m, Engine &engine, unsigned L) |
Initialize MPLSH. | |
void | load (std::istream &ar) |
Load the index from stream. | |
void | save (std::ostream &ar) |
Save to the index to stream. | |
template<typename SCANNER> | |
void | query (Domain obj, unsigned T, SCANNER &scanner) |
Query for K-NNs. | |
template<typename SCANNER> | |
void | query_recall (Domain obj, float recall, SCANNER &scanner) const |
Query for K-NNs, try to achieve the given recall by adaptive probing. |
typedef Super::Parameter lshkit::MultiProbeLshIndex< KEY >::Parameter |
Super::Parameter is the same as MultiProbeLsh::Parameter
Reimplemented from lshkit::LshIndex< LSH, KEY >.
void lshkit::MultiProbeLshIndex< KEY >::init | ( | const Parameter & | param, | |
Engine & | engine, | |||
unsigned | L | |||
) | [inline] |
Initialize MPLSH.
param | parameters. | |
engine | random number generator (if you are not sure about what to use, then pass DefaultRng. | |
accessor | object accessor (same as in LshIndex). | |
L | number of hash tables maintained. |
void lshkit::MultiProbeLshIndex< KEY >::query | ( | Domain | obj, | |
unsigned | T, | |||
SCANNER & | scanner | |||
) | [inline] |
Query for K-NNs.
obj | the query object. | |
scanner |
void lshkit::MultiProbeLshIndex< KEY >::query_recall | ( | Domain | obj, | |
float | recall, | |||
SCANNER & | scanner | |||
) | const [inline] |
Query for K-NNs, try to achieve the given recall by adaptive probing.
There's a special requirement for the scanner type used in adaptive query. It should support the following method to return the current K-NNs:
const Topk<KEY> &topk () const;