in cpp/src/hnswalg.h [959:980]
std::vector<data_t> getDataByLabel(labeltype label) const {
if (search_only_)
throw std::runtime_error(
"getDataByLabel is not supported in search only mode");
tableint label_c;
auto search = label_lookup_.find(label);
if (search == label_lookup_.end() || isMarkedDeleted(search->second)) {
throw std::runtime_error("Label " + std::to_string(label) +
" not found in index.");
}
label_c = search->second;
data_t *data_ptr = getDataByInternalId(label_c);
size_t dim = dist_func_param_;
std::vector<data_t> data;
for (unsigned long i = 0; i < dim; i++) {
data.push_back(*data_ptr);
data_ptr += 1;
}
return data;
}