aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-10-27 06:54:37 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-10-27 09:37:13 +0000
commite7d5df01a80af0734fbe31a3a765e45abeb8dc13 (patch)
tree4864b8b0dbd186aa8e9df82914648f9ad2db9d2b /searchlib/src
parent69e163ab82de73f5c294cfd2ca3de0e9be434a5b (diff)
Add and clarify on-first-phase
Diffstat (limited to 'searchlib/src')
-rw-r--r--searchlib/src/vespa/searchlib/common/resultset.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/common/resultset.h1
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/hitcollector.h2
3 files changed, 7 insertions, 2 deletions
diff --git a/searchlib/src/vespa/searchlib/common/resultset.cpp b/searchlib/src/vespa/searchlib/common/resultset.cpp
index 8f5d2d6d105..2e1e431ad82 100644
--- a/searchlib/src/vespa/searchlib/common/resultset.cpp
+++ b/searchlib/src/vespa/searchlib/common/resultset.cpp
@@ -103,6 +103,12 @@ ResultSet::sort(FastS_IResultSorter & sorter, unsigned int ntop) {
}
std::pair<std::unique_ptr<BitVector>, vespalib::Array<RankedHit>>
+ResultSet::copyResult() const {
+ std::unique_ptr<BitVector> copy = _bitOverflow ? BitVector::create(*_bitOverflow) : std::unique_ptr<BitVector>();
+ return std::make_pair(std::move(copy), _rankedHitsArray);
+}
+
+std::pair<std::unique_ptr<BitVector>, vespalib::Array<RankedHit>>
ResultSet::stealResult(ResultSet && rhs) {
return std::make_pair(std::move(rhs._bitOverflow), std::move(rhs._rankedHitsArray));
}
diff --git a/searchlib/src/vespa/searchlib/common/resultset.h b/searchlib/src/vespa/searchlib/common/resultset.h
index e18888dbaf7..6824fc4170d 100644
--- a/searchlib/src/vespa/searchlib/common/resultset.h
+++ b/searchlib/src/vespa/searchlib/common/resultset.h
@@ -36,6 +36,7 @@ public:
unsigned int getNumHits() const;
void mergeWithBitOverflow(HitRank default_value = default_rank_value);
void sort(FastS_IResultSorter & sorter, unsigned int ntop);
+ std::pair<std::unique_ptr<BitVector>, vespalib::Array<RankedHit>> copyResult() const;
static std::pair<std::unique_ptr<BitVector>, vespalib::Array<RankedHit>>
stealResult(ResultSet && rhs);
};
diff --git a/searchlib/src/vespa/searchlib/queryeval/hitcollector.h b/searchlib/src/vespa/searchlib/queryeval/hitcollector.h
index 0d6b470d699..85bbe5ee950 100644
--- a/searchlib/src/vespa/searchlib/queryeval/hitcollector.h
+++ b/searchlib/src/vespa/searchlib/queryeval/hitcollector.h
@@ -80,7 +80,6 @@ private:
typedef std::unique_ptr<Collector> UP;
virtual ~Collector() {}
virtual void collect(uint32_t docId, feature_t score) = 0;
- virtual bool isRankedHitCollector() const { return false; }
virtual bool isDocIdCollector() const { return false; }
};
@@ -104,7 +103,6 @@ private:
RankedHitCollector(HitCollector &hc) : CollectorBase(hc) { }
void collect(uint32_t docId, feature_t score) override;
void collectAndChangeCollector(uint32_t docId, feature_t score) __attribute__((noinline));
- bool isRankedHitCollector() const override { return true; }
};
template <bool CollectRankedHit>