Class HnswBuild¶
Defined in File hnsw_build.h
Inheritance Relationships¶
Derived Type¶
public n2::HnswBuildImpl< DistFuncType >(Template Class HnswBuildImpl)
Class Documentation¶
-
class
n2::HnswBuild¶ Subclassed by n2::HnswBuildImpl< DistFuncType >
Public Functions
-
HnswBuild(int dim, DistanceKind metric)¶
-
~HnswBuild()¶
-
void
AddData(const std::vector<float> &data)¶
-
void
SetConfigs(const std::vector<std::pair<std::string, std::string>> &configs)¶
-
std::shared_ptr<const HnswModel>
Build(int m, int max_m0, int ef_construction, int n_threads, float mult, NeighborSelectingPolicy neighbor_selecting, GraphPostProcessing graph_merging)¶
-
void
PrintDegreeDist() const¶
-
void
PrintConfigs() const¶
Public Static Functions
-
std::unique_ptr<HnswBuild>
GenerateBuilder(int dim, DistanceKind metric)¶
Protected Functions
-
void
SetConfigs(int m, int max_m0, int ef_construction, int n_threads, float mult, NeighborSelectingPolicy neighbor_selecting, GraphPostProcessing graph_merging)¶
-
int
GetRandomNodeLevel()¶
-
int
GetRandomSeedPerThread()¶
-
void
BuildGraph(bool reverse)¶
-
void
InitPolicies() = 0¶
-
void
InsertNode(HnswNode *qnode, VisitedList *visited_list) = 0¶
-
void
SearchAtLayer(HnswNode *qnode, const std::vector<HnswNode*> &enterpoints, int level, VisitedList *visited_list, std::priority_queue<FurtherFirst> &result) = 0¶
Protected Attributes
-
std::shared_ptr<spdlog::logger>
logger_¶
-
const std::string
n2_signature= "TOROS_N2@N9R4"¶
-
size_t
m_= 12¶
-
size_t
max_m_= 12¶
-
size_t
max_m0_= 24¶
-
size_t
ef_construction_= 150¶
-
int
n_threads_= 1¶
-
NeighborSelectingPolicy
neighbor_selecting_= NeighborSelectingPolicy::HEURISTIC¶
-
NeighborSelectingPolicy
post_neighbor_selecting_= NeighborSelectingPolicy::HEURISTIC_SAVE_REMAINS¶
-
GraphPostProcessing
post_graph_process_= GraphPostProcessing::SKIP¶
-
int
max_level_= 0¶
-
int
num_nodes_= 0¶
-
size_t
data_dim_= 0¶
-
DistanceKind
metric_¶
-
std::mutex
max_level_guard_¶
-