diff options
author | Tor Egge <Tor.Egge@online.no> | 2024-05-31 14:43:04 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2024-05-31 14:43:04 +0200 |
commit | fd2bb5ed6791986cb25cbdf6dd68d02ed5c65fe9 (patch) | |
tree | f7c003fe57534ad22bc77a51183898f8b94c26df /searchlib | |
parent | e06242c5d5e8ec7e85e25e1c21354d8c6776e2f6 (diff) |
Deduce default value in hit collector.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp | 8 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/hitcollector.h | 7 |
2 files changed, 11 insertions, 4 deletions
diff --git a/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp b/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp index c1d59463ad9..698593cfd8e 100644 --- a/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp @@ -269,8 +269,14 @@ mixin_rescored_hits(ResultSet& rs, const std::vector<HitCollector::Hit>& hits, c } std::unique_ptr<ResultSet> -HitCollector::getResultSet(HitRank default_value) +HitCollector::getResultSet() { + /* + * Use default_rank_value (i.e. -HUGE_VAL) when hit collector saves + * rank scores, otherwise use zero_rank_value (i.e. 0.0). + */ + auto default_value = save_rank_scores() ? search::default_rank_value : search::zero_rank_value; + bool needReScore = FirstPhaseRescorer::need_rescore(_ranges); FirstPhaseRescorer rescorer(_ranges); diff --git a/searchlib/src/vespa/searchlib/queryeval/hitcollector.h b/searchlib/src/vespa/searchlib/queryeval/hitcollector.h index 903c2ab5b13..fe1d486ff2a 100644 --- a/searchlib/src/vespa/searchlib/queryeval/hitcollector.h +++ b/searchlib/src/vespa/searchlib/queryeval/hitcollector.h @@ -121,6 +121,8 @@ private: VESPA_DLL_LOCAL void sortHitsByScore(size_t topn); VESPA_DLL_LOCAL void sortHitsByDocId(); + bool save_rank_scores() const noexcept { return _maxHitsSize != 0; } + public: HitCollector(const HitCollector &) = delete; HitCollector &operator=(const HitCollector &) = delete; @@ -169,10 +171,9 @@ public: * Invoking this method will destroy the heap property of the * ranked hits and the match data heap. * - * @param auto pointer to the result set - * @param default_value rank value to be used for results without rank value + * @return unique pointer to the result set **/ - std::unique_ptr<ResultSet> getResultSet(HitRank default_value = default_rank_value); + std::unique_ptr<ResultSet> getResultSet(); }; } |