aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/query/streaming/same_element_query_node.h
diff options
context:
space:
mode:
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.h11
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;
};
}