diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-05-16 14:56:05 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-05-16 14:56:48 +0000 |
commit | 8fd57c5965cf715073acfc67f34bb028a8680330 (patch) | |
tree | 22caac91777c1d04a2c5a117a978bc8cf8061a73 /searchlib | |
parent | c348f78ebc0bb09d5977858c7492ff04202d59b4 (diff) |
Make single field createBlueprint accessible
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.cpp | 7 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/searchable.h | 27 |
2 files changed, 16 insertions, 18 deletions
diff --git a/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.cpp b/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.cpp index d9338641a39..a2d244250cf 100644 --- a/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.cpp @@ -75,13 +75,12 @@ CreateBlueprintVisitorHelper::handleNumberTermAsText(query::NumberTerm &n) template <typename WS, typename NODE> void CreateBlueprintVisitorHelper::createWeightedSet(std::unique_ptr<WS> bp, NODE &n) { - FieldSpecList fields; + bp->reserve(n.getNumTerms()); for (size_t i = 0; i < n.getNumTerms(); ++i) { - fields.clear(); - fields.add(bp->getNextChildField(_field)); auto term = n.getAsString(i); query::SimpleStringTerm node(term.first, n.getView(), 0, term.second); // TODO Temporary - bp->addTerm(_searchable.createBlueprint(_requestContext, fields, node), term.second.percent()); + FieldSpec field = bp->getNextChildField(_field); + bp->addTerm(_searchable.createBlueprint(_requestContext, field, node), term.second.percent()); } setResult(std::move(bp)); } diff --git a/searchlib/src/vespa/searchlib/queryeval/searchable.h b/searchlib/src/vespa/searchlib/queryeval/searchable.h index 2438cbf5a3b..a36a7f34e1c 100644 --- a/searchlib/src/vespa/searchlib/queryeval/searchable.h +++ b/searchlib/src/vespa/searchlib/queryeval/searchable.h @@ -22,23 +22,12 @@ class FieldSpecList; **/ class Searchable { -protected: - /** - * Create a blueprint searching a single field. - * - * @return blueprint - * @param requestContext that belongs to the query - * @param field the field to search - * @param term the query tree term - **/ - virtual std::unique_ptr<Blueprint> createBlueprint(const IRequestContext & requestContext, - const FieldSpec &field, - const search::query::Node &term) = 0; - public: using SP = std::shared_ptr<Searchable>; Searchable() = default; + virtual ~Searchable() = default; + /** * Create a blueprint searching a set of fields. The default @@ -53,7 +42,17 @@ public: virtual std::unique_ptr<Blueprint> createBlueprint(const IRequestContext & requestContext, const FieldSpecList &fields, const search::query::Node &term); - virtual ~Searchable() = default; + /** + * Create a blueprint searching a single field. + * + * @return blueprint + * @param requestContext that belongs to the query + * @param field the field to search + * @param term the query tree term + **/ + virtual std::unique_ptr<Blueprint> createBlueprint(const IRequestContext & requestContext, + const FieldSpec &field, + const search::query::Node &term) = 0; }; } |