summaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-02-11 11:49:53 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2024-02-11 11:49:53 +0000
commitbdd51aec6d90d1d46c652e5a6ddef62bae7c2444 (patch)
tree3d1cbebd118e339315e136dd3d10311cb5d16375 /streamingvisitors
parentd905428a436779c8abc381e470b6a825a5cfa30c (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')
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/hitcollector.cpp6
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp2
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.h2
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;
/**