diff options
author | Tor Egge <Tor.Egge@online.no> | 2024-05-29 14:14:54 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2024-05-29 14:14:54 +0200 |
commit | 6576f786ddeafd398a0064b1eb1fffb00dd3339d (patch) | |
tree | 7fc5430d077c9f48763fd3422a860effed97281b | |
parent | d495abf7a078c1109b9be7bae12fe2b225fa9327 (diff) |
Pass docid to rescorers.
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/first_phase_rescorer.h | 3 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/searchlib/src/vespa/searchlib/queryeval/first_phase_rescorer.h b/searchlib/src/vespa/searchlib/queryeval/first_phase_rescorer.h index 4d3fe40a4dc..301e2aa78d0 100644 --- a/searchlib/src/vespa/searchlib/queryeval/first_phase_rescorer.h +++ b/searchlib/src/vespa/searchlib/queryeval/first_phase_rescorer.h @@ -3,6 +3,7 @@ #pragma once #include "scores.h" +#include <cstdint> namespace search::queryeval { @@ -16,7 +17,7 @@ class FirstPhaseRescorer { public: FirstPhaseRescorer(const std::pair<Scores,Scores>& ranges); static bool need_rescore(const std::pair<Scores,Scores>& ranges); - double rescore(double score) const noexcept { + double rescore(uint32_t, double score) const noexcept { return ((score * _scale) - _adjust); } }; diff --git a/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp b/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp index ad6c1342900..3154f95bbe1 100644 --- a/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp @@ -189,7 +189,7 @@ namespace { struct NoRescorer { - static double rescore(double score) noexcept { return score; } + static double rescore(uint32_t, double score) noexcept { return score; } }; template <typename Rescorer> @@ -197,7 +197,7 @@ void add_rescored_hits(ResultSet& rs, const std::vector<HitCollector::Hit>& hits, Rescorer rescorer) { for (auto& hit : hits) { - rs.push_back({hit.first, rescorer.rescore(hit.second)}); + rs.push_back({hit.first, rescorer.rescore(hit.first, hit.second)}); } } @@ -209,7 +209,7 @@ mixin_rescored_hits(ResultSet& rs, const std::vector<HitCollector::Hit>& hits, c auto hits_end = hits.end(); for (auto docid : docids) { if (hits_cur != hits_end && docid == hits_cur->first) { - rs.push_back({docid, rescorer.rescore(hits_cur->second)}); + rs.push_back({docid, rescorer.rescore(docid, hits_cur->second)}); ++hits_cur; } else { rs.push_back({docid, default_value}); |