From e9d46ccf90eff80a990655f99b0650b952584f05 Mon Sep 17 00:00:00 2001 From: Kishore Nallan Date: Sun, 2 Jul 2023 20:46:23 +0530 Subject: [PATCH] Always use hash based faceting for small result sets. --- src/index.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/index.cpp b/src/index.cpp index 50f7a19b..76fd43eb 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -1281,8 +1281,9 @@ void Index::do_facets(std::vector & facets, facet_query_t & facet_query, // 2. Wildcard + no filters -> use value index // 3. Very few unique facet values (< 250) -> use value index // 4. Result match > 50% - bool use_value_index = (group_limit == 0) && ( is_wildcard_no_filter_query || num_facet_values < 250 || - (results_size * 2 > total_docs)); + bool use_value_index = (group_limit == 0) && ( is_wildcard_no_filter_query || + (results_size > 1000 && num_facet_values < 250) || + (results_size > 1000 && results_size * 2 > total_docs)); #ifdef TEST_BUILD if(facet_index_type == VALUE) {