diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-04 14:05:24 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-04 14:14:55 +0000 |
commit | d2d26962756cf63046b208c0a920b7bbbeba435b (patch) | |
tree | 19dab4e3c21f40917fe444d50d6d561a2490a777 /searchlib/src/vespa/searchlib/query/streaming/querynode.cpp | |
parent | cd29e2859009ca728dd6d268715d1703c8d4a321 (diff) |
Make the SearchTerm enum a small scoped enum and rename to Type.
Diffstat (limited to 'searchlib/src/vespa/searchlib/query/streaming/querynode.cpp')
-rw-r--r-- | searchlib/src/vespa/searchlib/query/streaming/querynode.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/searchlib/src/vespa/searchlib/query/streaming/querynode.cpp b/searchlib/src/vespa/searchlib/query/streaming/querynode.cpp index 66466b030d0..ec1b26ec143 100644 --- a/searchlib/src/vespa/searchlib/query/streaming/querynode.cpp +++ b/searchlib/src/vespa/searchlib/query/streaming/querynode.cpp @@ -91,22 +91,23 @@ QueryNode::Build(const QueryNode * parent, const QueryNodeResultFactory & factor index = parent->getIndex() + "." + index; } vespalib::stringref term = queryRep.getTerm(); - QueryTerm::SearchTerm sTerm(QueryTerm::WORD); + using TermType = QueryTerm::Type; + TermType sTerm(TermType::WORD); switch (type) { case ParseItem::ITEM_REGEXP: - sTerm = QueryTerm::REGEXP; + sTerm = TermType::REGEXP; break; case ParseItem::ITEM_PREFIXTERM: - sTerm = QueryTerm::PREFIXTERM; + sTerm = TermType::PREFIXTERM; break; case ParseItem::ITEM_SUBSTRINGTERM: - sTerm = QueryTerm::SUBSTRINGTERM; + sTerm = TermType::SUBSTRINGTERM; break; case ParseItem::ITEM_EXACTSTRINGTERM: - sTerm = QueryTerm::EXACTSTRINGTERM; + sTerm = TermType::EXACTSTRINGTERM; break; case ParseItem::ITEM_SUFFIXTERM: - sTerm = QueryTerm::SUFFIXTERM; + sTerm = TermType::SUFFIXTERM; break; default: break; @@ -118,16 +119,16 @@ QueryNode::Build(const QueryNode * parent, const QueryNodeResultFactory & factor // But it will do for now as only correct sddocname queries are sent down. qn.reset(new TrueNode()); } else { - std::unique_ptr<QueryTerm> qt(new QueryTerm(factory.create(), ssTerm, ssIndex, sTerm)); + auto qt = std::make_unique<QueryTerm>(factory.create(), ssTerm, ssIndex, sTerm); qt->setWeight(queryRep.GetWeight()); qt->setUniqueId(queryRep.getUniqueId()); if ( qt->encoding().isBase10Integer() || ! qt->encoding().isFloat() || ! factory.getRewriteFloatTerms() || !allowRewrite || (ssTerm.find('.') == vespalib::string::npos)) { qn = std::move(qt); } else { - std::unique_ptr<PhraseQueryNode> phrase(new PhraseQueryNode()); - phrase->push_back(UP(new QueryTerm(factory.create(), ssTerm.substr(0, ssTerm.find('.')), ssIndex, QueryTerm::WORD))); - phrase->push_back(UP(new QueryTerm(factory.create(), ssTerm.substr(ssTerm.find('.') + 1), ssIndex, QueryTerm::WORD))); - std::unique_ptr<EquivQueryNode> orqn(new EquivQueryNode()); + auto phrase = std::make_unique<PhraseQueryNode>(); + phrase->push_back(std::make_unique<QueryTerm>(factory.create(), ssTerm.substr(0, ssTerm.find('.')), ssIndex, TermType::WORD)); + phrase->push_back(std::make_unique<QueryTerm>(factory.create(), ssTerm.substr(ssTerm.find('.') + 1), ssIndex, TermType::WORD)); + auto orqn = std::make_unique<EquivQueryNode>(); orqn->push_back(std::move(qt)); orqn->push_back(std::move(phrase)); qn.reset(orqn.release()); |