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_
¶
-