diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-02-11 11:49:53 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-02-11 11:49:53 +0000 |
commit | bdd51aec6d90d1d46c652e5a6ddef62bae7c2444 (patch) | |
tree | 3d1cbebd118e339315e136dd3d10311cb5d16375 /streamingvisitors | |
parent | d905428a436779c8abc381e470b6a825a5cfa30c (diff) |
- Use explicit given wanted hit count.
- Do not rely on using _hits.size(). There is no contract they are the same.
They are so for now so only by implementation.
Diffstat (limited to 'streamingvisitors')
3 files changed, 6 insertions, 4 deletions
diff --git a/streamingvisitors/src/vespa/searchvisitor/hitcollector.cpp b/streamingvisitors/src/vespa/searchvisitor/hitcollector.cpp index 229a6f455c4..8efcf73738e 100644 --- a/streamingvisitors/src/vespa/searchvisitor/hitcollector.cpp +++ b/streamingvisitors/src/vespa/searchvisitor/hitcollector.cpp @@ -130,7 +130,9 @@ void HitCollector::fillSearchResult(vdslib::SearchResult & searchResult, FeatureValues&& match_features) { sortByDocId(); - for (const Hit & hit : _hits) { + size_t count = std::min(_hits.size(), searchResult.getWantedHitCount()); + for (size_t i(0); i < count; i++) { + const Hit & hit = _hits[i]; vespalib::string documentId(hit.getDocument().docDoc().getId().toString()); search::DocumentIdT docId = hit.getDocId(); SearchResult::RankType rank = hit.getRankScore(); @@ -164,8 +166,8 @@ HitCollector::getFeatureSet(IRankProgram &rankProgram, auto names = FefUtils::extract_feature_names(resolver, feature_rename_map); FeatureSet::SP retval = std::make_shared<FeatureSet>(names, _hits.size()); for (const Hit & hit : _hits) { - rankProgram.run(hit.getDocId(), hit.getMatchData()); uint32_t docId = hit.getDocId(); + rankProgram.run(docId, hit.getMatchData()); auto * f = retval->getFeaturesByIndex(retval->addDocId(docId)); FefUtils::extract_feature_values(resolver, docId, f); } diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp index 0a4664a4878..fdb107d00fc 100644 --- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp +++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp @@ -668,8 +668,8 @@ SearchVisitor::RankController::RankController() : _queryProperties(), _featureOverrides(), _hasRanking(false), - _rankProcessor(), _dumpFeatures(false), + _rankProcessor(), _dumpProcessor() { } diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h index 945750ef679..aae298e9c81 100644 --- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h +++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h @@ -131,8 +131,8 @@ private: search::fef::Properties _queryProperties; search::fef::Properties _featureOverrides; bool _hasRanking; - RankProcessor::UP _rankProcessor; bool _dumpFeatures; + RankProcessor::UP _rankProcessor; RankProcessor::UP _dumpProcessor; /** |