@@ -509,7 +509,11 @@ class vamana_index {
509509 filter_labels_ = filter_labels;
510510
511511 // Find start nodes (load-balanced) using find_medoid
512- start_nodes_ = find_medoid (feature_vectors_, filter_labels_, distance_function_);
512+ // find_medoid returns std::unordered_map<uint32_t, size_t>, so convert to id_type
513+ auto start_nodes_size_t = find_medoid (feature_vectors_, filter_labels_, distance_function_);
514+ for (const auto & [label, node_id] : start_nodes_size_t ) {
515+ start_nodes_[label] = static_cast <id_type>(node_id);
516+ }
513517
514518 // No single medoid in filtered mode
515519 } else {
@@ -540,9 +544,8 @@ class vamana_index {
540544 }
541545
542546 // NEW: Use filtered or unfiltered search based on mode
543- std::vector<id_type> visited;
544547 if (filter_enabled_) {
545- auto && [_, __, v ] = filtered_greedy_search_multi_start (
548+ auto && [_, __, visited ] = filtered_greedy_search_multi_start (
546549 graph_,
547550 feature_vectors_,
548551 filter_labels_,
@@ -553,24 +556,9 @@ class vamana_index {
553556 l_build_,
554557 distance_function_,
555558 true );
556- visited = std::move (v);
557- } else {
558- auto && [_, __, v] = ::best_first_O4 /* greedy_search*/ (
559- graph_,
560- feature_vectors_,
561- medoid_,
562- feature_vectors_[p],
563- 1 ,
564- l_build_,
565- true ,
566- distance_function_);
567- visited = std::move (v);
568- }
569559
570- total_visited += visited.size ();
560+ total_visited += visited.size ();
571561
572- // NEW: Use filtered or unfiltered prune based on mode
573- if (filter_enabled_) {
574562 filtered_robust_prune (
575563 graph_,
576564 feature_vectors_,
@@ -581,6 +569,18 @@ class vamana_index {
581569 r_max_degree_,
582570 distance_function_);
583571 } else {
572+ auto && [_, __, visited] = ::best_first_O4 /* greedy_search*/ (
573+ graph_,
574+ feature_vectors_,
575+ medoid_,
576+ feature_vectors_[p],
577+ 1 ,
578+ l_build_,
579+ true ,
580+ distance_function_);
581+
582+ total_visited += visited.size ();
583+
584584 robust_prune (
585585 graph_,
586586 feature_vectors_,
0 commit comments