aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/query/streaming/querynode.cpp
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-03-04 14:05:24 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-03-04 14:14:55 +0000
commitd2d26962756cf63046b208c0a920b7bbbeba435b (patch)
tree19dab4e3c21f40917fe444d50d6d561a2490a777 /searchlib/src/vespa/searchlib/query/streaming/querynode.cpp
parentcd29e2859009ca728dd6d268715d1703c8d4a321 (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.cpp23
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());