diff --git a/searchcore/src/tests/proton/matching/matching_test.cpp b/searchcore/src/tests/proton/matching/matching_test.cpp index c1ff4f8f8a29..e30d79ecb0e7 100644 --- a/searchcore/src/tests/proton/matching/matching_test.cpp +++ b/searchcore/src/tests/proton/matching/matching_test.cpp @@ -1288,8 +1288,8 @@ struct AttributeBlueprintParamsFixture { rank_properties.add(FuzzyAlgorithm::NAME, fuzzy_matching_algorithm); } ~AttributeBlueprintParamsFixture(); - AttributeBlueprintParams extract(uint32_t active_docids = 9, uint32_t docid_limit = 10) const { - return MatchToolsFactory::extract_attribute_blueprint_params(rank_setup, rank_properties, active_docids, docid_limit); + CreateBlueprintParams extract(uint32_t active_docids = 9, uint32_t docid_limit = 10) const { + return MatchToolsFactory::extract_create_blueprint_params(rank_setup, rank_properties, active_docids, docid_limit); } }; diff --git a/searchcore/src/tests/proton/matching/request_context/request_context_test.cpp b/searchcore/src/tests/proton/matching/request_context/request_context_test.cpp index 80925c71e2aa..2ce03a3aa823 100644 --- a/searchcore/src/tests/proton/matching/request_context/request_context_test.cpp +++ b/searchcore/src/tests/proton/matching/request_context/request_context_test.cpp @@ -1,23 +1,23 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include -#include #include +#include #include -#include #include #include -#include -#include +#include #include #include +#include +#include -using search::attribute::AttributeBlueprintParams; using search::attribute::IAttributeContext; using search::attribute::IAttributeFunctor; using search::attribute::IAttributeVector; using search::fef::test::IndexEnvironment; using search::fef::test::QueryEnvironment; +using search::queryeval::CreateBlueprintParams; using vespalib::eval::SimpleValue; using vespalib::eval::TensorSpec; using vespalib::eval::Value; @@ -58,7 +58,7 @@ class RequestContextTest : public ::testing::Test { _attr_ctx(), _index_env(), _query_env(&_index_env), - _request_ctx(_doom, _thread_bundle, _attr_ctx, _query_env, _query_env.getObjectStore(), AttributeBlueprintParams(), nullptr), + _request_ctx(_doom, _thread_bundle, _attr_ctx, _query_env, _query_env.getObjectStore(), CreateBlueprintParams(), nullptr), _query_tensor(SimpleValue::from_spec(TensorSpec("tensor(x[2])") .add({{"x", 0}}, 3).add({{"x", 1}}, 5))) { diff --git a/searchcore/src/vespa/searchcore/proton/matching/blueprintbuilder.cpp b/searchcore/src/vespa/searchcore/proton/matching/blueprintbuilder.cpp index eece04e71bdb..0b4b4cfb7e7c 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/blueprintbuilder.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/blueprintbuilder.cpp @@ -5,11 +5,11 @@ #include "same_element_builder.h" #include #include -#include -#include +#include #include #include -#include +#include +#include #include using namespace search::queryeval; @@ -71,8 +71,8 @@ class BlueprintBuilderVisitor : void buildWeakAnd(ProtonWeakAnd &n) { auto *wand = new WeakAndBlueprint(n.getTargetNumHits(), - _requestContext.get_attribute_blueprint_params().weakand_range, - _requestContext.get_attribute_blueprint_params().weakand_stop_word_strategy, + _requestContext.get_create_blueprint_params().weakand_range, + _requestContext.get_create_blueprint_params().weakand_stop_word_strategy, is_search_multi_threaded()); Blueprint::UP result(wand); for (auto node : n.getChildren()) { diff --git a/searchcore/src/vespa/searchcore/proton/matching/match_tools.cpp b/searchcore/src/vespa/searchcore/proton/matching/match_tools.cpp index c6ab0b1ad2a6..013bf4b79f0a 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/match_tools.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/match_tools.cpp @@ -4,23 +4,23 @@ #include "querynodes.h" #include "rangequerylocator.h" #include -#include #include #include -#include -#include #include #include #include #include +#include +#include +#include #include #include -using search::queryeval::IDiversifier; -using search::attribute::diversity::DiversityFilter; using search::attribute::BasicType; -using search::attribute::AttributeBlueprintParams; +using search::attribute::diversity::DiversityFilter; +using search::queryeval::CreateBlueprintParams; using search::queryeval::ExecuteInfo; +using search::queryeval::IDiversifier; using vespalib::Issue; using namespace search::fef::indexproperties::matchphase; @@ -183,12 +183,12 @@ MatchToolsFactory(QueryLimiter & queryLimiter, uint32_t maxNumHits, bool is_search) : _queryLimiter(queryLimiter), - _attribute_blueprint_params(extract_attribute_blueprint_params(rankSetup, rankProperties, metaStore.getNumActiveLids(), searchContext.getDocIdLimit())), + _create_blueprint_params(extract_create_blueprint_params(rankSetup, rankProperties, metaStore.getNumActiveLids(), searchContext.getDocIdLimit())), _query(), _match_limiter(), _queryEnv(indexEnv, attributeContext, rankProperties, searchContext.getIndexes()), _requestContext(doom, thread_bundle, attributeContext, _queryEnv, _queryEnv.getObjectStore(), - _attribute_blueprint_params, metaStoreReadGuard), + _create_blueprint_params, metaStoreReadGuard), _mdl(), _rankSetup(rankSetup), _featureOverrides(featureOverrides), @@ -221,8 +221,8 @@ MatchToolsFactory(QueryLimiter & queryLimiter, _query.fetchPostings(ExecuteInfo::create(in_flow.rate(), _requestContext.getDoom(), thread_bundle)); if (is_search) { _query.handle_global_filter(_requestContext, searchContext.getDocIdLimit(), - _attribute_blueprint_params.global_filter_lower_limit, - _attribute_blueprint_params.global_filter_upper_limit, trace, sort_by_cost); + _create_blueprint_params.global_filter_lower_limit, + _create_blueprint_params.global_filter_upper_limit, trace, sort_by_cost); } _query.freeze(); trace.addEvent(5, "Prepare shared state for multi-threaded rank executors"); @@ -345,9 +345,9 @@ MatchToolsFactory::get_feature_rename_map() const return _rankSetup.get_feature_rename_map(); } -AttributeBlueprintParams -MatchToolsFactory::extract_attribute_blueprint_params(const RankSetup& rank_setup, const Properties& rank_properties, - uint32_t active_docids, uint32_t docid_limit) +CreateBlueprintParams +MatchToolsFactory::extract_create_blueprint_params(const RankSetup& rank_setup, const Properties& rank_properties, + uint32_t active_docids, uint32_t docid_limit) { double lower_limit = GlobalFilterLowerLimit::lookup(rank_properties, rank_setup.get_global_filter_lower_limit()); double upper_limit = GlobalFilterUpperLimit::lookup(rank_properties, rank_setup.get_global_filter_upper_limit()); diff --git a/searchcore/src/vespa/searchcore/proton/matching/match_tools.h b/searchcore/src/vespa/searchcore/proton/matching/match_tools.h index f6d9407ebbcc..1358d886ceaa 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/match_tools.h +++ b/searchcore/src/vespa/searchcore/proton/matching/match_tools.h @@ -113,7 +113,7 @@ class MatchToolsFactory private: using IAttributeFunctor = search::attribute::IAttributeFunctor; using IAttributeContext = search::attribute::IAttributeContext; - using AttributeBlueprintParams = search::attribute::AttributeBlueprintParams; + using CreateBlueprintParams = search::queryeval::CreateBlueprintParams; using MatchDataLayout = search::fef::MatchDataLayout; using Properties = search::fef::Properties; using RankProgram = search::fef::RankProgram; @@ -122,7 +122,7 @@ class MatchToolsFactory using IDiversifier = search::queryeval::IDiversifier; using FirstPhaseRankLookup = search::features::FirstPhaseRankLookup; QueryLimiter & _queryLimiter; - AttributeBlueprintParams _attribute_blueprint_params; + CreateBlueprintParams _create_blueprint_params; Query _query; MaybeMatchPhaseLimiter::UP _match_limiter; std::unique_ptr _rangeLocator; @@ -181,15 +181,15 @@ class MatchToolsFactory const StringStringMap & get_feature_rename_map() const; /** - * Extracts attribute blueprint parameters from the rank-profile and query. + * Extracts create blueprint parameters from the rank-profile and query. * * The global filter parameters are expected to be in the range [0.0, 1.0], which matches the range of the estimated hit ratio of the query. * When searchable-copies > 1, we must scale the parameters to match the effective range of the estimated hit ratio. * This is done by multiplying with the active hit ratio (active docids / docid limit). */ - static AttributeBlueprintParams - extract_attribute_blueprint_params(const RankSetup& rank_setup, const Properties& rank_properties, - uint32_t active_docids, uint32_t docid_limit); + static CreateBlueprintParams + extract_create_blueprint_params(const RankSetup& rank_setup, const Properties& rank_properties, + uint32_t active_docids, uint32_t docid_limit); FirstPhaseRankLookup* get_first_phase_rank_lookup() const noexcept { return _first_phase_rank_lookup; } const search::IDocumentMetaStore & metaStore() const noexcept { return _metaStore; } }; diff --git a/searchcore/src/vespa/searchcore/proton/matching/requestcontext.cpp b/searchcore/src/vespa/searchcore/proton/matching/requestcontext.cpp index 7b098114a0c4..ee0e3d094344 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/requestcontext.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/requestcontext.cpp @@ -23,14 +23,14 @@ RequestContext::RequestContext(const Doom & doom, IAttributeContext & attributeContext, const search::fef::IQueryEnvironment& query_env, search::fef::IObjectStore& shared_store, - const search::attribute::AttributeBlueprintParams& attribute_blueprint_params, + const search::queryeval::CreateBlueprintParams& create_blueprint_params, const MetaStoreReadGuardSP * metaStoreReadGuard) : _doom(doom), _thread_bundle(thread_bundle_in), _attributeContext(attributeContext), _query_env(query_env), _shared_store(shared_store), - _attribute_blueprint_params(attribute_blueprint_params), + _create_blueprint_params(create_blueprint_params), _metaStoreReadGuard(metaStoreReadGuard) { } diff --git a/searchcore/src/vespa/searchcore/proton/matching/requestcontext.h b/searchcore/src/vespa/searchcore/proton/matching/requestcontext.h index 8f25ae6aa324..4cdcf0a3a611 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/requestcontext.h +++ b/searchcore/src/vespa/searchcore/proton/matching/requestcontext.h @@ -3,9 +3,9 @@ #pragma once #include -#include #include -#include +#include +#include #include namespace search::fef { @@ -27,7 +27,7 @@ class RequestContext : public search::queryeval::IRequestContext, IAttributeContext& attributeContext, const search::fef::IQueryEnvironment& query_env, search::fef::IObjectStore& shared_store, - const search::attribute::AttributeBlueprintParams& attribute_blueprint_params, + const search::queryeval::CreateBlueprintParams& create_blueprint_params, const MetaStoreReadGuardSP * metaStoreReadGuard); const Doom & getDoom() const override { return _doom; } @@ -39,8 +39,8 @@ class RequestContext : public search::queryeval::IRequestContext, const vespalib::eval::Value* get_query_tensor(const std::string& tensor_name) const override; - const search::attribute::AttributeBlueprintParams& get_attribute_blueprint_params() const override { - return _attribute_blueprint_params; + const search::queryeval::CreateBlueprintParams& get_create_blueprint_params() const override { + return _create_blueprint_params; } const MetaStoreReadGuardSP * getMetaStoreReadGuard() const override { return _metaStoreReadGuard; @@ -52,7 +52,7 @@ class RequestContext : public search::queryeval::IRequestContext, IAttributeContext & _attributeContext; const search::fef::IQueryEnvironment & _query_env; search::fef::IObjectStore & _shared_store; - search::attribute::AttributeBlueprintParams _attribute_blueprint_params; + search::queryeval::CreateBlueprintParams _create_blueprint_params; const MetaStoreReadGuardSP * _metaStoreReadGuard; }; diff --git a/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.cpp b/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.cpp index 0da8518f8219..d9ee1cb12e1f 100644 --- a/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.cpp +++ b/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.cpp @@ -33,7 +33,7 @@ using TermMap = vespalib::hash_set; namespace { class WarmupRequestContext : public IRequestContext { using IAttributeVector = search::attribute::IAttributeVector; - using AttributeBlueprintParams = search::attribute::AttributeBlueprintParams; + using CreateBlueprintParams = search::queryeval::CreateBlueprintParams; public: explicit WarmupRequestContext(); ~WarmupRequestContext() override; @@ -42,10 +42,10 @@ class WarmupRequestContext : public IRequestContext { const IAttributeVector *getAttribute(std::string_view) const override { return nullptr; } const IAttributeVector *getAttributeStableEnum(std::string_view) const override { return nullptr; } const vespalib::eval::Value* get_query_tensor(const std::string&) const override; - const AttributeBlueprintParams& get_attribute_blueprint_params() const override { return _params; } + const CreateBlueprintParams& get_create_blueprint_params() const override { return _params; } const MetaStoreReadGuardSP * getMetaStoreReadGuard() const override { return nullptr; } private: - const AttributeBlueprintParams _params; + const CreateBlueprintParams _params; }; class WarmupTask : public vespalib::Executor::Task { public: diff --git a/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.h b/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.h index 28c5c3bcf4a0..619c9f797cc2 100644 --- a/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.h +++ b/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.h @@ -4,7 +4,7 @@ #include "isearchableindexcollection.h" #include "warmupconfig.h" -#include +#include #include #include #include diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp index 7d0e3689fa5c..da33fd79cc19 100644 --- a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp @@ -1,7 +1,6 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "attribute_blueprint_factory.h" -#include "attribute_blueprint_params.h" #include "attribute_object_visitor.h" #include "attribute_weighted_set_blueprint.h" #include "direct_multi_term_blueprint.h" @@ -19,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -74,6 +74,7 @@ using search::queryeval::AndBlueprint; using search::queryeval::AndSearchStrict; using search::queryeval::Blueprint; using search::queryeval::ComplexLeafBlueprint; +using search::queryeval::CreateBlueprintParams; using search::queryeval::CreateBlueprintVisitorHelper; using search::queryeval::DotProductBlueprint; using search::queryeval::FieldSpec; @@ -621,7 +622,7 @@ class CreateBlueprintVisitor : public CreateBlueprintVisitorHelper template void visitTerm(TermNode &n) { SearchContextParams scParams = createContextParams(_field.isFilter()); - scParams.fuzzy_matching_algorithm(getRequestContext().get_attribute_blueprint_params().fuzzy_matching_algorithm); + scParams.fuzzy_matching_algorithm(getRequestContext().get_create_blueprint_params().fuzzy_matching_algorithm); const string stack = StackDumpCreator::create(n); setResult(std::make_unique(_field, _attr, stack, scParams)); } @@ -765,7 +766,7 @@ class CreateBlueprintVisitor : public CreateBlueprintVisitorHelper } try { auto calc = tensor::DistanceCalculator::make_with_validation(_attr, *query_tensor); - const auto& params = getRequestContext().get_attribute_blueprint_params(); + const auto& params = getRequestContext().get_create_blueprint_params(); setResult(std::make_unique(_field, std::move(calc), n.get_target_num_hits(), diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_params.h b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_params.h deleted file mode 100644 index 2ec3ffd29fc3..000000000000 --- a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_params.h +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#pragma once - -#include -#include -#include - -namespace search::attribute { - -/** - * Parameters for attribute blueprints from rank profile and query. - */ -struct AttributeBlueprintParams -{ - double global_filter_lower_limit; - double global_filter_upper_limit; - double target_hits_max_adjustment_factor; - vespalib::FuzzyMatchingAlgorithm fuzzy_matching_algorithm; - double weakand_range; - queryeval::wand::StopWordStrategy weakand_stop_word_strategy; - - AttributeBlueprintParams(double global_filter_lower_limit_in, - double global_filter_upper_limit_in, - double target_hits_max_adjustment_factor_in, - vespalib::FuzzyMatchingAlgorithm fuzzy_matching_algorithm_in, - double weakand_range_in, - queryeval::wand::StopWordStrategy weakand_stop_word_strategy_in) - : global_filter_lower_limit(global_filter_lower_limit_in), - global_filter_upper_limit(global_filter_upper_limit_in), - target_hits_max_adjustment_factor(target_hits_max_adjustment_factor_in), - fuzzy_matching_algorithm(fuzzy_matching_algorithm_in), - weakand_range(weakand_range_in), - weakand_stop_word_strategy(weakand_stop_word_strategy_in) - { - } - - AttributeBlueprintParams() - : AttributeBlueprintParams(fef::indexproperties::matching::GlobalFilterLowerLimit::DEFAULT_VALUE, - fef::indexproperties::matching::GlobalFilterUpperLimit::DEFAULT_VALUE, - fef::indexproperties::matching::TargetHitsMaxAdjustmentFactor::DEFAULT_VALUE, - fef::indexproperties::matching::FuzzyAlgorithm::DEFAULT_VALUE, - fef::indexproperties::temporary::WeakAndRange::DEFAULT_VALUE, - queryeval::wand::StopWordStrategy::none()) - { - } -}; - -} diff --git a/searchlib/src/vespa/searchlib/queryeval/create_blueprint_params.h b/searchlib/src/vespa/searchlib/queryeval/create_blueprint_params.h new file mode 100644 index 000000000000..20f095728be1 --- /dev/null +++ b/searchlib/src/vespa/searchlib/queryeval/create_blueprint_params.h @@ -0,0 +1,49 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#pragma once + +#include "vespa/searchlib/fef/indexproperties.h" +#include "vespa/searchlib/queryeval/wand/wand_parts.h" +#include "vespa/vespalib/fuzzy/fuzzy_matching_algorithm.h" + +namespace search::queryeval { + +/** + * Parameters from a rank profile and query that are available when creating blueprints. + */ +struct CreateBlueprintParams +{ + double global_filter_lower_limit; + double global_filter_upper_limit; + double target_hits_max_adjustment_factor; + vespalib::FuzzyMatchingAlgorithm fuzzy_matching_algorithm; + double weakand_range; + queryeval::wand::StopWordStrategy weakand_stop_word_strategy; + + CreateBlueprintParams(double global_filter_lower_limit_in, + double global_filter_upper_limit_in, + double target_hits_max_adjustment_factor_in, + vespalib::FuzzyMatchingAlgorithm fuzzy_matching_algorithm_in, + double weakand_range_in, + queryeval::wand::StopWordStrategy weakand_stop_word_strategy_in) + : global_filter_lower_limit(global_filter_lower_limit_in), + global_filter_upper_limit(global_filter_upper_limit_in), + target_hits_max_adjustment_factor(target_hits_max_adjustment_factor_in), + fuzzy_matching_algorithm(fuzzy_matching_algorithm_in), + weakand_range(weakand_range_in), + weakand_stop_word_strategy(weakand_stop_word_strategy_in) + { + } + + CreateBlueprintParams() + : CreateBlueprintParams(fef::indexproperties::matching::GlobalFilterLowerLimit::DEFAULT_VALUE, + fef::indexproperties::matching::GlobalFilterUpperLimit::DEFAULT_VALUE, + fef::indexproperties::matching::TargetHitsMaxAdjustmentFactor::DEFAULT_VALUE, + fef::indexproperties::matching::FuzzyAlgorithm::DEFAULT_VALUE, + fef::indexproperties::temporary::WeakAndRange::DEFAULT_VALUE, + queryeval::wand::StopWordStrategy::none()) + { + } +}; + +} diff --git a/searchlib/src/vespa/searchlib/queryeval/fake_requestcontext.cpp b/searchlib/src/vespa/searchlib/queryeval/fake_requestcontext.cpp index f15f3d0e84c2..976308c99321 100644 --- a/searchlib/src/vespa/searchlib/queryeval/fake_requestcontext.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/fake_requestcontext.cpp @@ -16,16 +16,16 @@ FakeRequestContext::FakeRequestContext(attribute::IAttributeContext * context, v _attributeContext(context), _query_tensor_name(), _query_tensor(), - _attribute_blueprint_params() + _create_blueprint_params() { } FakeRequestContext::~FakeRequestContext() = default; -const search::attribute::AttributeBlueprintParams& -FakeRequestContext::get_attribute_blueprint_params() const +const CreateBlueprintParams& +FakeRequestContext::get_create_blueprint_params() const { - return _attribute_blueprint_params; + return _create_blueprint_params; } } diff --git a/searchlib/src/vespa/searchlib/queryeval/fake_requestcontext.h b/searchlib/src/vespa/searchlib/queryeval/fake_requestcontext.h index a0f4d365e926..ee09974b4473 100644 --- a/searchlib/src/vespa/searchlib/queryeval/fake_requestcontext.h +++ b/searchlib/src/vespa/searchlib/queryeval/fake_requestcontext.h @@ -3,13 +3,13 @@ #pragma once #include "irequestcontext.h" +#include "create_blueprint_params.h" #include #include #include #include #include #include -#include #include #include #include @@ -48,7 +48,7 @@ class FakeRequestContext : public IRequestContext _query_tensor = vespalib::eval::value_from_spec(tensor_spec, vespalib::eval::FastValueBuilderFactory::get()); } - const search::attribute::AttributeBlueprintParams& get_attribute_blueprint_params() const override; + const CreateBlueprintParams& get_create_blueprint_params() const override; const MetaStoreReadGuardSP * getMetaStoreReadGuard() const override { return nullptr; } private: std::unique_ptr _clock; @@ -56,7 +56,7 @@ class FakeRequestContext : public IRequestContext attribute::IAttributeContext *_attributeContext; std::string _query_tensor_name; std::unique_ptr _query_tensor; - search::attribute::AttributeBlueprintParams _attribute_blueprint_params; + CreateBlueprintParams _create_blueprint_params; }; } diff --git a/searchlib/src/vespa/searchlib/queryeval/irequestcontext.h b/searchlib/src/vespa/searchlib/queryeval/irequestcontext.h index 31c6be2fbfcf..b76278e3236d 100644 --- a/searchlib/src/vespa/searchlib/queryeval/irequestcontext.h +++ b/searchlib/src/vespa/searchlib/queryeval/irequestcontext.h @@ -5,7 +5,6 @@ #include #include -namespace search::attribute { struct AttributeBlueprintParams; } namespace search::attribute { class IAttributeVector; } namespace vespalib::eval { struct Value; } namespace vespalib { @@ -15,6 +14,8 @@ namespace vespalib { namespace search::queryeval { +struct CreateBlueprintParams; + /** * Provides a context that follows the life of a query. */ @@ -35,7 +36,7 @@ class IRequestContext virtual vespalib::ThreadBundle & thread_bundle() const = 0; /** - * Provide access to attributevectors + * Provide access to attribute vectors. * @return AttributeVector or nullptr if it does not exist. */ virtual const attribute::IAttributeVector *getAttribute(std::string_view name) const = 0; @@ -47,7 +48,7 @@ class IRequestContext */ virtual const vespalib::eval::Value* get_query_tensor(const std::string& tensor_name) const = 0; - virtual const search::attribute::AttributeBlueprintParams& get_attribute_blueprint_params() const = 0; + virtual const CreateBlueprintParams& get_create_blueprint_params() const = 0; virtual const MetaStoreReadGuardSP * getMetaStoreReadGuard() const = 0; };