diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-10-27 06:54:37 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-10-27 09:37:13 +0000 |
commit | e7d5df01a80af0734fbe31a3a765e45abeb8dc13 (patch) | |
tree | 4864b8b0dbd186aa8e9df82914648f9ad2db9d2b /searchlib | |
parent | 69e163ab82de73f5c294cfd2ca3de0e9be434a5b (diff) |
Add and clarify on-first-phase
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/common/resultset.cpp | 6 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/common/resultset.h | 1 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/hitcollector.h | 2 |
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> |