diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-05-10 12:52:23 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-05-10 12:52:23 +0000 |
commit | e87209100d3beef0f384120315d50e6910388405 (patch) | |
tree | 34902c6565e3fe99e5163a30ca27eb2f27055aa8 /searchlib | |
parent | c038534986d6451295c242865b9b98c93d5bb75a (diff) |
Use createContextParams helper method.
Diffstat (limited to 'searchlib')
3 files changed, 23 insertions, 23 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp index 5335d0fde18..9d1ec1b37a8 100644 --- a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp @@ -46,6 +46,7 @@ LOG_SETUP(".searchlib.attribute.attribute_blueprint_factory"); using search::attribute::BasicType; +using search::attribute::SearchContextParams; using search::attribute::CollectionType; using search::attribute::IAttributeVector; using search::attribute::ISearchContext; @@ -128,11 +129,11 @@ private: public: AttributeFieldBlueprint(const FieldSpec &field, const IAttributeVector &attribute, - const string &query_stack, const attribute::SearchContextParams ¶ms) + const string &query_stack, const SearchContextParams ¶ms) : AttributeFieldBlueprint(field, attribute, QueryTermDecoder::decodeTerm(query_stack), params) { } AttributeFieldBlueprint(const FieldSpec &field, const IAttributeVector &attribute, - QueryTermSimple::UP term, const attribute::SearchContextParams ¶ms) + QueryTermSimple::UP term, const SearchContextParams ¶ms) : SimpleLeafBlueprint(field), _attr(attribute), _query_term(term->getTermString()), @@ -179,8 +180,6 @@ public: bool getRange(vespalib::string &from, vespalib::string &to) const override; }; -namespace { - vespalib::string get_type(const IAttributeVector& attr) { @@ -205,8 +204,6 @@ visit_attribute(vespalib::ObjectVisitor& visitor, const IAttributeVector& attr) visitor.closeStruct(); } -} - void AttributeFieldBlueprint::visitMembers(vespalib::ObjectVisitor &visitor) const { @@ -233,7 +230,7 @@ private: bool _should_use; public: - LocationPreFilterBlueprint(const FieldSpec &field, const IAttributeVector &attribute, const ZCurve::RangeVector &rangeVector, const attribute::SearchContextParams & scParams) + LocationPreFilterBlueprint(const FieldSpec &field, const IAttributeVector &attribute, const ZCurve::RangeVector &rangeVector, const SearchContextParams & scParams) : ComplexLeafBlueprint(field), _attribute(attribute), _rangeSearches(), @@ -351,7 +348,7 @@ public: Blueprint::UP make_location_blueprint(const FieldSpec &field, const IAttributeVector &attribute, const Location &loc, - const attribute::SearchContextParams & scParams) { + const SearchContextParams & scParams) { LOG(debug, "make_location_blueprint(fieldId[%u], p[%d,%d], r[%u], aspect[%u], bb[[%d,%d],[%d,%d]])", field.getFieldId(), loc.point.x, loc.point.y, loc.radius, @@ -700,19 +697,14 @@ public: NodeAsKey key(n, _scratchPad); setResult(std::make_unique<DirectAttributeBlueprint>(_field, _attr.getName(), _attr, *_dwa, key)); } else { - attribute::SearchContextParams scParams; - scParams.useBitVector(_field.isFilter()) - .metaStoreReadGuard(getRequestContext().getMetaStoreReadGuard()); + SearchContextParams scParams = createContextParams(_field.isFilter()); const string stack = StackDumpCreator::create(n); setResult(std::make_unique<AttributeFieldBlueprint>(_field, _attr, stack, scParams)); } } void visitLocation(LocationTerm &node) { - attribute::SearchContextParams scParams; - scParams.useBitVector(_field.isFilter()) - .metaStoreReadGuard(getRequestContext().getMetaStoreReadGuard()); - setResult(make_location_blueprint(_field, _attr, node.getTerm(), scParams)); + setResult(make_location_blueprint(_field, _attr, node.getTerm(), createContextParams(_field.isFilter()))); } void visitPredicate(PredicateQuery &query) { @@ -733,9 +725,7 @@ public: const string stack = StackDumpCreator::create(n); const string term = queryeval::termAsString(n); QueryTermSimple parsed_term(term, QueryTermSimple::Type::WORD); - attribute::SearchContextParams scParams; - scParams.useBitVector(_field.isFilter()) - .metaStoreReadGuard(getRequestContext().getMetaStoreReadGuard()); + SearchContextParams scParams = createContextParams(_field.isFilter()); if (parsed_term.getMaxPerGroup() > 0) { const IAttributeVector *diversity(getRequestContext().getAttribute(parsed_term.getDiversityAttribute())); if (check_valid_diversity_attr(diversity)) { @@ -785,8 +775,7 @@ public: bool isInteger = _attr.isIntegerType(); if (isSingleValue && (isString || isInteger)) { auto ws = std::make_unique<AttributeWeightedSetBlueprint>(_field, _attr); - attribute::SearchContextParams scParams; - scParams.metaStoreReadGuard(getRequestContext().getMetaStoreReadGuard()); + SearchContextParams scParams = createContextParams(); for (size_t i = 0; i < n.getNumTerms(); ++i) { auto term = n.getAsString(i); ws->addToken(_attr.createSearchContext(extractTerm(term.first, isInteger), scParams), term.second.percent()); @@ -870,8 +859,7 @@ template <typename WS> void CreateBlueprintVisitor::createShallowWeightedSet(WS *bp, MultiTerm &n, const FieldSpec &fs, bool isInteger) { Blueprint::UP result(bp); - attribute::SearchContextParams scParams; - scParams.metaStoreReadGuard(getRequestContext().getMetaStoreReadGuard()); + SearchContextParams scParams = createContextParams(); for (uint32_t i(0); i < n.getNumTerms(); i++) { FieldSpec childfs = bp->getNextChildField(fs); auto term = n.getAsString(i); 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 d179515be6c..d9338641a39 100644 --- a/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.cpp @@ -9,6 +9,7 @@ #include "simple_phrase_blueprint.h" #include "weighted_set_term_blueprint.h" #include "split_float.h" +#include "irequestcontext.h" namespace search::queryeval { @@ -21,6 +22,15 @@ CreateBlueprintVisitorHelper::CreateBlueprintVisitorHelper(Searchable &searchabl CreateBlueprintVisitorHelper::~CreateBlueprintVisitorHelper() = default; +attribute::SearchContextParams +CreateBlueprintVisitorHelper::createContextParams() const { + return attribute::SearchContextParams().metaStoreReadGuard(_requestContext.getMetaStoreReadGuard()); +} +attribute::SearchContextParams +CreateBlueprintVisitorHelper::createContextParams(bool useBitVector) const { + return createContextParams().useBitVector(useBitVector); +} + Blueprint::UP CreateBlueprintVisitorHelper::getResult() { diff --git a/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h b/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h index c410f8b98c4..b14ea234e86 100644 --- a/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h +++ b/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h @@ -8,6 +8,7 @@ #include <vespa/searchlib/query/tree/queryvisitor.h> #include <vespa/searchlib/query/tree/termnodes.h> #include <vespa/searchlib/query/tree/simplequery.h> +#include <vespa/searchcommon/attribute/search_context_params.h> #include <memory> namespace search::queryeval { @@ -26,7 +27,8 @@ private: protected: const IRequestContext & getRequestContext() const { return _requestContext; } - + attribute::SearchContextParams createContextParams() const; + attribute::SearchContextParams createContextParams(bool isFilter) const; public: CreateBlueprintVisitorHelper(Searchable &searchable, const FieldSpec &field, const IRequestContext & requestContext); ~CreateBlueprintVisitorHelper() override; |