summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-07-26 16:31:02 +0200
committerHenning Baldersheim <balder@oath.com>2018-07-26 16:31:02 +0200
commitbe2daa8789f524f8717063160c3aedd5a831c9b2 (patch)
tree9a86b8f72c8844c92b2508713befa2722822d1db /searchlib
parent6d046574404925ba0664e193e99718c9a1aba3d4 (diff)
Simplify since reRank i snot incremental.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp b/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp
index f07447de7cf..e0385af99bc 100644
--- a/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp
+++ b/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp
@@ -220,23 +220,19 @@ HitCollector::reRank(DocumentScorer &scorer, size_t count)
size_t
HitCollector::reRank(DocumentScorer &scorer, std::vector<Hit> hits) {
size_t hitsToReRank = hits.size();
- if (_reRankedHits.empty()) {
- _reRankedHits = std::move(hits);
- } else {
- _reRankedHits.insert(_reRankedHits.end(), hits.begin(), hits.end());
- }
Scores &initScores = _ranges.first;
Scores &finalScores = _ranges.second;
- initScores = Scores(_reRankedHits.back().second, _reRankedHits.front().second);
+ initScores = Scores(hits.back().second, hits.front().second);
finalScores = Scores(std::numeric_limits<feature_t>::max(),
-std::numeric_limits<feature_t>::max());
- std::sort(_reRankedHits.begin(), _reRankedHits.end()); // sort on docId
- for (auto &hit : _reRankedHits) {
+ std::sort(hits.begin(), hits.end()); // sort on docId
+ for (auto &hit : hits) {
hit.second = scorer.score(hit.first);
finalScores.low = std::min(finalScores.low, hit.second);
finalScores.high = std::max(finalScores.high, hit.second);
}
+ _reRankedHits = std::move(hits);
_hasReRanked = true;
return hitsToReRank;
}