aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2024-03-18 14:34:03 +0100
committerTor Egge <Tor.Egge@online.no>2024-03-18 14:34:03 +0100
commit4b5012817431e6cb91a2d19235ffa768cf6cf88f (patch)
tree6c64ec3f7259fcccff9989dd801d0e8704d205f2
parenta91ea35083d79d63e925e3d5fe8f4735b90a17ce (diff)
Rewrite is disabled for nodes below SameElementQueryNode.
-rw-r--r--searchlib/src/vespa/searchlib/query/streaming/querynode.cpp10
-rw-r--r--searchlib/src/vespa/searchlib/query/streaming/querynode.h2
2 files changed, 5 insertions, 7 deletions
diff --git a/searchlib/src/vespa/searchlib/query/streaming/querynode.cpp b/searchlib/src/vespa/searchlib/query/streaming/querynode.cpp
index 37f3b07058b..94a479fd2d3 100644
--- a/searchlib/src/vespa/searchlib/query/streaming/querynode.cpp
+++ b/searchlib/src/vespa/searchlib/query/streaming/querynode.cpp
@@ -27,9 +27,7 @@ namespace search::streaming {
namespace {
bool disableRewrite(const QueryNode * qn) {
- return dynamic_cast<const NearQueryNode *> (qn) ||
- dynamic_cast<const PhraseQueryNode *> (qn) ||
- dynamic_cast<const SameElementQueryNode *>(qn);
+ return dynamic_cast<const NearQueryNode *> (qn);
}
bool possibleFloat(const QueryTerm & qt, const QueryTerm::string & term) {
@@ -196,7 +194,7 @@ QueryNode::Build(const QueryNode * parent, const QueryNodeResultFactory & factor
qn = build_equiv_term(factory, queryRep, allowRewrite);
break;
case ParseItem::ITEM_SAME_ELEMENT:
- qn = build_same_element_term(factory, queryRep, allowRewrite);
+ qn = build_same_element_term(factory, queryRep);
break;
default:
skip_unknown(queryRep);
@@ -337,7 +335,7 @@ QueryNode::build_equiv_term(const QueryNodeResultFactory& factory, SimpleQuerySt
}
std::unique_ptr<QueryNode>
-QueryNode::build_same_element_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep, bool allow_rewrite)
+QueryNode::build_same_element_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep)
{
auto sen = std::make_unique<SameElementQueryNode>(factory.create(), queryRep.getIndexName(), queryRep.getArity());
auto arity = queryRep.getArity();
@@ -345,7 +343,7 @@ QueryNode::build_same_element_term(const QueryNodeResultFactory& factory, Simple
sen->setUniqueId(queryRep.getUniqueId());
for (size_t i = 0; i < arity; ++i) {
queryRep.next();
- auto qn = Build(sen.get(), factory, queryRep, allow_rewrite);
+ auto qn = Build(sen.get(), factory, queryRep, false);
auto qtp = dynamic_cast<QueryTerm*>(qn.get());
assert(qtp != nullptr);
qn.release();
diff --git a/searchlib/src/vespa/searchlib/query/streaming/querynode.h b/searchlib/src/vespa/searchlib/query/streaming/querynode.h
index c891cd44363..20e701e5c50 100644
--- a/searchlib/src/vespa/searchlib/query/streaming/querynode.h
+++ b/searchlib/src/vespa/searchlib/query/streaming/querynode.h
@@ -35,7 +35,7 @@ class QueryNode
static std::unique_ptr<QueryNode> build_weighted_set_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep);
static std::unique_ptr<QueryNode> build_phrase_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep);
static std::unique_ptr<QueryNode> build_equiv_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep, bool allow_rewrite);
- static std::unique_ptr<QueryNode> build_same_element_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep, bool allow_rewrite);
+ static std::unique_ptr<QueryNode> build_same_element_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep);
static void skip_unknown(SimpleQueryStackDumpIterator& queryRep);
public:
using UP = std::unique_ptr<QueryNode>;