aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/queryeval/weak_and/rise_wand.h
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-04-26 10:04:01 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2024-04-26 10:04:01 +0000
commitcc217a6619d8f6285e7a453fa38bb1e46c9243c0 (patch)
treef471e2d8efbe8a1113db691af044fc61d71cc0fd /searchlib/src/tests/queryeval/weak_and/rise_wand.h
parent95cccd4698808d320f41461697f74a1c9d161bac (diff)
Allow scorer for wand to carry state
Diffstat (limited to 'searchlib/src/tests/queryeval/weak_and/rise_wand.h')
-rw-r--r--searchlib/src/tests/queryeval/weak_and/rise_wand.h21
1 files changed, 15 insertions, 6 deletions
diff --git a/searchlib/src/tests/queryeval/weak_and/rise_wand.h b/searchlib/src/tests/queryeval/weak_and/rise_wand.h
index d4e66ec1907..057cfec1b5d 100644
--- a/searchlib/src/tests/queryeval/weak_and/rise_wand.h
+++ b/searchlib/src/tests/queryeval/weak_and/rise_wand.h
@@ -15,10 +15,14 @@ namespace rise {
struct TermFreqScorer
{
- static int64_t calculateMaxScore(const wand::Term &term) {
- return TermFrequencyScorer::calculateMaxScore(term);
+ TermFrequencyScorer _termFrequencyScorer;
+ TermFreqScorer() noexcept
+ : _termFrequencyScorer()
+ { }
+ int64_t calculateMaxScore(const wand::Term &term) {
+ return _termFrequencyScorer.calculateMaxScore(term);
}
- static int64_t calculateScore(const wand::Term &term, uint32_t docId) {
+ int64_t calculateScore(const wand::Term &term, uint32_t docId) {
term.search->unpack(docId);
return term.maxScore;
}
@@ -43,9 +47,13 @@ private:
//const addr_t *const *_streamPayloads;
public:
- StreamComparator(const docid_t *streamDocIds);
+ explicit StreamComparator(const docid_t *streamDocIds) noexcept
+ : _streamDocIds(streamDocIds)
+ { }
//const addr_t *const *streamPayloads);
- inline bool operator()(const uint16_t a, const uint16_t b);
+ bool operator()(const uint16_t a, const uint16_t b) const noexcept {
+ return (_streamDocIds[a] < _streamDocIds[b]);
+ }
};
// number of streams present in the query
@@ -66,6 +74,7 @@ private:
// comparator that compares two streams
StreamComparator _streamComparator;
+ Scorer _scorer;
//-------------------------------------------------------------------------
// variables used for scoring and pruning
@@ -119,7 +128,7 @@ private:
public:
RiseWand(const Terms &terms, uint32_t n);
- ~RiseWand();
+ ~RiseWand() override;
void next();
void doSeek(uint32_t docid) override;
void doUnpack(uint32_t docid) override;