aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/query/tree/querybuilder.h
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2021-10-19 18:29:53 +0200
committerGitHub <noreply@github.com>2021-10-19 18:29:53 +0200
commit8964cbed0c69e539235eb482651e6f84efd22898 (patch)
tree0652f770ca7a165035aaee67853c8456fe0cd71a /searchlib/src/vespa/searchlib/query/tree/querybuilder.h
parente722ea4cb24548558a5a0b50ae483cce0bd3f31c (diff)
parent5bac27daa62f5b9136695a319a7ff5a7b8bcb602 (diff)
Merge pull request #19622 from vespa-engine/arnej/add-true-and-false-itemsv7.486.17
add ITEM_TRUE and ITEM_FALSE query nodes
Diffstat (limited to 'searchlib/src/vespa/searchlib/query/tree/querybuilder.h')
-rw-r--r--searchlib/src/vespa/searchlib/query/tree/querybuilder.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/query/tree/querybuilder.h b/searchlib/src/vespa/searchlib/query/tree/querybuilder.h
index a0788f0a777..9631e2afded 100644
--- a/searchlib/src/vespa/searchlib/query/tree/querybuilder.h
+++ b/searchlib/src/vespa/searchlib/query/tree/querybuilder.h
@@ -21,6 +21,7 @@
#include "predicate_query_term.h"
#include "node.h"
+#include "const_bool_nodes.h"
#include <vespa/searchlib/query/weight.h>
#include <stack>
@@ -98,6 +99,12 @@ public:
// You may specialize these functions for your own traits class to have full
// control of the query node instantiation.
+template <class NodeTypes>
+typename NodeTypes::TrueQueryNode *create_true() { return new typename NodeTypes::TrueQueryNode; }
+
+template <class NodeTypes>
+typename NodeTypes::FalseQueryNode *create_false() { return new typename NodeTypes::FalseQueryNode; }
+
// Intermediate nodes
template <class NodeTypes>
typename NodeTypes::And *createAnd() { return new typename NodeTypes::And; }
@@ -328,6 +335,12 @@ public:
adjustWeight(weight);
return addTerm(create_nearest_neighbor_term<NodeTypes>(query_tensor_name, field_name, id, weight, target_num_hits, allow_approximate, explore_additional_hits, distance_threshold));
}
+ typename NodeTypes::TrueQueryNode &add_true_node() {
+ return addTerm(create_true<NodeTypes>());
+ }
+ typename NodeTypes::FalseQueryNode &add_false_node() {
+ return addTerm(create_false<NodeTypes>());
+ }
};
}