diff options
author | Håvard Pettersen <havardpe@yahooinc.com> | 2022-09-26 08:37:42 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@yahooinc.com> | 2022-10-18 13:40:29 +0000 |
commit | 19e7d644bd4091921ebd3ab2facfbd27098659f4 (patch) | |
tree | 2950bc354b1ec761620fced514627ec4e4408edc | |
parent | 7a8571355a737aab02934ad5cf9fc8521c429b54 (diff) |
expose all-documents predicate for iterators
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/emptysearch.h | 1 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/full_search.h | 1 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/searchiterator.h | 6 |
3 files changed, 8 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/queryeval/emptysearch.h b/searchlib/src/vespa/searchlib/queryeval/emptysearch.h index 897decb456b..c12ce33d6ab 100644 --- a/searchlib/src/vespa/searchlib/queryeval/emptysearch.h +++ b/searchlib/src/vespa/searchlib/queryeval/emptysearch.h @@ -21,6 +21,7 @@ protected: setAtEnd(); } virtual Trinary is_strict() const override; + Trinary matches_any() const override { return Trinary::False; } public: EmptySearch(); diff --git a/searchlib/src/vespa/searchlib/queryeval/full_search.h b/searchlib/src/vespa/searchlib/queryeval/full_search.h index 81c9125807e..df73f24b174 100644 --- a/searchlib/src/vespa/searchlib/queryeval/full_search.h +++ b/searchlib/src/vespa/searchlib/queryeval/full_search.h @@ -21,6 +21,7 @@ private: void or_hits_into(BitVector &result, uint32_t begin_id) override; void and_hits_into(BitVector &result, uint32_t begin_id) override; BitVector::UP get_hits(uint32_t begin_id) override; + Trinary matches_any() const override { return Trinary::True; } public: FullSearch(); diff --git a/searchlib/src/vespa/searchlib/queryeval/searchiterator.h b/searchlib/src/vespa/searchlib/queryeval/searchiterator.h index 3a57d15b1e9..38a11b4d960 100644 --- a/searchlib/src/vespa/searchlib/queryeval/searchiterator.h +++ b/searchlib/src/vespa/searchlib/queryeval/searchiterator.h @@ -355,6 +355,12 @@ public: virtual Trinary is_strict() const { return Trinary::Undefined; } + // will this iterator match any document? + // (True -> all documents match) + // (False -> no documents match) + // (Undefined -> use seek to find out) + // number of matches: (False <= Undefined <= True) + virtual Trinary matches_any() const { return Trinary::Undefined; } }; } |