diff options
author | Arne H Juul <arnej27959@users.noreply.github.com> | 2021-10-19 18:29:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-19 18:29:53 +0200 |
commit | 8964cbed0c69e539235eb482651e6f84efd22898 (patch) | |
tree | 0652f770ca7a165035aaee67853c8456fe0cd71a /searchlib/src/vespa/searchlib/query/tree/querybuilder.h | |
parent | e722ea4cb24548558a5a0b50ae483cce0bd3f31c (diff) | |
parent | 5bac27daa62f5b9136695a319a7ff5a7b8bcb602 (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.h | 13 |
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>()); + } }; } |