diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-03-08 15:18:25 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-03-08 15:18:25 +0000 |
commit | e404ed5fea671f34d196b12e91a9f39d9e3c0b28 (patch) | |
tree | 28749e0c7c83fd7e0836d41aa8798bd748dcfc9e | |
parent | eadc775a626fd2604545a6b9a2b77784ca60ba15 (diff) |
If schema name is provided, append it to config id.
-rw-r--r-- | streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp index 52dd1c52fc2..dc58b607848 100644 --- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp +++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp @@ -55,15 +55,24 @@ using vespalib::string; namespace { -std::optional<vespalib::string> +vespalib::stringref extract_search_cluster(const vdslib::Parameters& params) { - Parameters::ValueRef searchClusterBlob; - if (params.lookup("searchcluster", searchClusterBlob)) { - LOG(spam, "Received searchcluster blob of %zd bytes", searchClusterBlob.size()); - return {{searchClusterBlob.data(), searchClusterBlob.size()}}; + Parameters::ValueRef searchCluster; + if (params.lookup("searchcluster", searchCluster)) { + LOG(spam, "Received searchcluster blob of %zd bytes", searchCluster.size()); } - return std::nullopt; + return searchCluster; +} + +vespalib::stringref +extract_schema(const vdslib::Parameters& params) +{ + Parameters::ValueRef schema; + if (params.lookup("schema", schema)) { + LOG(spam, "Received searchcluster blob of %zd bytes", schema.size()); + } + return schema; } std::shared_ptr<const SearchEnvironmentSnapshot> @@ -71,8 +80,11 @@ get_search_environment_snapshot(VisitorEnvironment& v_env, const Parameters& par { auto& env = dynamic_cast<SearchEnvironment&>(v_env); auto search_cluster = extract_search_cluster(params); - if (search_cluster.has_value()) { - return env.get_snapshot(search_cluster.value()); + if ( !search_cluster.empty()) { + auto schema = extract_schema(params); + return schema.empty() + ? env.get_snapshot(search_cluster) + : env.get_snapshot(search_cluster + "/" + schema); } return {}; } |