From 4b5012817431e6cb91a2d19235ffa768cf6cf88f Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Mon, 18 Mar 2024 14:34:03 +0100 Subject: Rewrite is disabled for nodes below SameElementQueryNode. --- searchlib/src/vespa/searchlib/query/streaming/querynode.cpp | 10 ++++------ searchlib/src/vespa/searchlib/query/streaming/querynode.h | 2 +- 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 (qn) || - dynamic_cast (qn) || - dynamic_cast(qn); + return dynamic_cast (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::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(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(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 build_weighted_set_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep); static std::unique_ptr build_phrase_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep); static std::unique_ptr build_equiv_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep, bool allow_rewrite); - static std::unique_ptr build_same_element_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep, bool allow_rewrite); + static std::unique_ptr build_same_element_term(const QueryNodeResultFactory& factory, SimpleQueryStackDumpIterator& queryRep); static void skip_unknown(SimpleQueryStackDumpIterator& queryRep); public: using UP = std::unique_ptr; -- cgit v1.2.3