From ff9eb6b8ea903cde6a085e4ef8fdcd9d63a393a4 Mon Sep 17 00:00:00 2001 From: Kishore Nallan Date: Sat, 2 Mar 2024 21:27:16 +0530 Subject: [PATCH] Tweak value facet sampling. --- src/id_list.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/id_list.cpp b/src/id_list.cpp index 7124132b..b3963677 100644 --- a/src/id_list.cpp +++ b/src/id_list.cpp @@ -729,16 +729,15 @@ size_t id_list_t::intersect_count(const uint32_t *res_ids, size_t res_ids_len, auto it = new_iterator(); if(estimate_facets) { - while(res_index < res_ids_len && it.valid()) { - auto skip_interval = rand() % (2 * facet_sample_interval); + while(it.valid() && res_index < res_ids_len) { if(it.id() == res_ids[res_index]) { count++; - it.next(); - res_index += skip_interval; + it.skip_n(facet_sample_interval); + res_index += facet_sample_interval; } else if(it.id() < res_ids[res_index]) { - it.skip_to(res_ids[res_index]); + it.skip_n(facet_sample_interval); } else { - res_index += skip_interval; + res_index += facet_sample_interval; } } } else { @@ -759,7 +758,7 @@ size_t id_list_t::intersect_count(const uint32_t *res_ids, size_t res_ids_len, // << ", skip_interval: " << facet_sample_interval << ", count: " << count; if(estimate_facets) { - count = count * facet_sample_interval; + count = count * facet_sample_interval * facet_sample_interval; } return std::min(ids_length, count);