diff options
Diffstat (limited to 'searchlib/src/vespa/searchlib/query/streaming/same_element_query_node.h')
-rw-r--r-- | searchlib/src/vespa/searchlib/query/streaming/same_element_query_node.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/searchlib/src/vespa/searchlib/query/streaming/same_element_query_node.h b/searchlib/src/vespa/searchlib/query/streaming/same_element_query_node.h index 8e675feb569..37fb3dbba52 100644 --- a/searchlib/src/vespa/searchlib/query/streaming/same_element_query_node.h +++ b/searchlib/src/vespa/searchlib/query/streaming/same_element_query_node.h @@ -2,21 +2,22 @@ #pragma once -#include "query.h" +#include "multi_term.h" namespace search::streaming { /** N-ary Same element operator. All terms must be within the same element. */ -class SameElementQueryNode : public AndQueryNode +class SameElementQueryNode : public MultiTerm { public: - SameElementQueryNode() noexcept : AndQueryNode("SAME_ELEMENT") { } + SameElementQueryNode(std::unique_ptr<QueryNodeResultBase> result_base, const string& index, uint32_t num_terms) noexcept; + ~SameElementQueryNode() override; bool evaluate() const override; const HitList & evaluateHits(HitList & hl) const override; - bool isFlattenable(ParseItem::ItemType) const override { return false; } - void addChild(QueryNode::UP child) override; + void unpack_match_data(uint32_t docid, const fef::ITermData& td, fef::MatchData& match_data, const fef::IIndexEnvironment& index_env) override; + bool multi_index_terms() const noexcept override; }; } |