From 19e7d644bd4091921ebd3ab2facfbd27098659f4 Mon Sep 17 00:00:00 2001 From: HÃ¥vard Pettersen Date: Mon, 26 Sep 2022 08:37:42 +0000 Subject: expose all-documents predicate for iterators --- searchlib/src/vespa/searchlib/queryeval/emptysearch.h | 1 + searchlib/src/vespa/searchlib/queryeval/full_search.h | 1 + searchlib/src/vespa/searchlib/queryeval/searchiterator.h | 6 ++++++ 3 files changed, 8 insertions(+) (limited to 'searchlib/src') 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; } }; } -- cgit v1.2.3