aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-05-16 14:56:05 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-05-16 14:56:48 +0000
commit8fd57c5965cf715073acfc67f34bb028a8680330 (patch)
tree22caac91777c1d04a2c5a117a978bc8cf8061a73 /searchlib
parentc348f78ebc0bb09d5977858c7492ff04202d59b4 (diff)
Make single field createBlueprint accessible
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.cpp7
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/searchable.h27
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;
};
}