diff options
author | Geir Storli <geirst@yahooinc.com> | 2023-10-19 14:29:30 +0000 |
---|---|---|
committer | Geir Storli <geirst@yahooinc.com> | 2023-10-19 14:29:30 +0000 |
commit | de43677264a053a6c6e6d7de60e434625fb57c43 (patch) | |
tree | 586f867e67db84d364958e259d88664473ed2cfb /searchlib/src | |
parent | 1376c7072c1fe952d4874c729ef3e66e8eb4624a (diff) |
Simplify after review feedback.
Diffstat (limited to 'searchlib/src')
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/postinglistsearchcontext.h | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/postinglistsearchcontext.h b/searchlib/src/vespa/searchlib/attribute/postinglistsearchcontext.h index b2c9c95412f..562c15e94d5 100644 --- a/searchlib/src/vespa/searchlib/attribute/postinglistsearchcontext.h +++ b/searchlib/src/vespa/searchlib/attribute/postinglistsearchcontext.h @@ -451,17 +451,15 @@ NumericPostingSearchContext<BaseSC, AttrT, DataT>::calc_estimated_hits_in_range( { size_t exact_sum = 0; size_t estimated_sum = 0; - uint32_t count = 0; constexpr uint32_t max_posting_lists_to_count = 1000; - for (auto it = this->_lowerDictItr; it != this->_upperDictItr; ++it) { - if (count >= max_posting_lists_to_count) { - uint32_t remaining_posting_lists = this->_upperDictItr - it; - float hits_per_posting_list = static_cast<float>(exact_sum) / static_cast<float>(max_posting_lists_to_count); - estimated_sum = remaining_posting_lists * hits_per_posting_list; - break; - } + auto it = this->_lowerDictItr; + for (uint32_t count = 0; (it != this->_upperDictItr) && (count < max_posting_lists_to_count); ++it, ++count) { exact_sum += this->_postingList.frozenSize(it.getData().load_acquire()); - ++count; + } + if (it != this->_upperDictItr) { + uint32_t remaining_posting_lists = this->_upperDictItr - it; + float hits_per_posting_list = static_cast<float>(exact_sum) / static_cast<float>(max_posting_lists_to_count); + estimated_sum = remaining_posting_lists * hits_per_posting_list; } return exact_sum + estimated_sum; } |