diff --git a/src/filter_result_iterator.cpp b/src/filter_result_iterator.cpp index 1c7cbc7a..d0037512 100644 --- a/src/filter_result_iterator.cpp +++ b/src/filter_result_iterator.cpp @@ -553,7 +553,7 @@ void filter_result_iterator_t::init() { return; } - filter_result.count = index->seq_ids->num_ids(); + approx_filter_ids_length = filter_result.count = index->seq_ids->num_ids(); filter_result.docs = index->seq_ids->uncompress(); seq_id = filter_result.docs[result_index]; @@ -1322,6 +1322,8 @@ filter_result_iterator_t &filter_result_iterator_t::operator=(filter_result_iter status = std::move(obj.status); is_filter_result_initialized = obj.is_filter_result_initialized; + approx_filter_ids_length = obj.approx_filter_ids_length; + return *this; } diff --git a/src/index.cpp b/src/index.cpp index 9e041f8e..1808f83b 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -2855,7 +2855,7 @@ Option Index::search(std::vector& field_query_tokens, cons store, doc_id_prefix, filter_tree_root); filter_result_iterator = filter_result_iterator_t(collection_name, this, filter_tree_root); - approx_filter_ids_length = filter_result_iterator.is_valid; + approx_filter_ids_length = filter_result_iterator.approx_filter_ids_length; } collate_included_ids({}, included_ids_map, curated_topster, searched_queries); @@ -2977,6 +2977,7 @@ Option Index::search(std::vector& field_query_tokens, cons if (no_filters_provided) { delete filter_tree_root; filter_tree_root = nullptr; + approx_filter_ids_length = 0; } uint32_t _all_result_ids_len = all_result_ids_len;