summaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-03-08 15:18:25 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2024-03-08 15:18:25 +0000
commite404ed5fea671f34d196b12e91a9f39d9e3c0b28 (patch)
tree28749e0c7c83fd7e0836d41aa8798bd748dcfc9e /streamingvisitors
parenteadc775a626fd2604545a6b9a2b77784ca60ba15 (diff)
If schema name is provided, append it to config id.
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp28
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 {};
}