summaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-09-05 13:07:13 +0200
committerGitHub <noreply@github.com>2022-09-05 13:07:13 +0200
commit04d8ae826ae56d1d89119fd4fd5ce7f0ab35ec7c (patch)
tree8554848b7eeb107322ffd3a00683d4666ea1d002 /streamingvisitors
parent9263243d4036760d67605b4f1497704cb8c4bf02 (diff)
Revert "Revert "Use commands from summary config to setup document field rewriters.""
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp2
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/CMakeLists.txt1
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsumconfig.cpp24
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsumconfig.h27
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp12
5 files changed, 6 insertions, 60 deletions
diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
index 9c39d929e4c..0bf41f9a379 100644
--- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
+++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
@@ -161,7 +161,7 @@ SearchVisitor::SummaryGenerator::get_streaming_docsums_state(const vespalib::str
if (_stack_dump.has_value()) {
ds._args.SetStackDump(_stack_dump.value().size(), _stack_dump.value().data());
}
- _docsumWriter->InitState(_attr_manager, &ds);
+ _docsumWriter->InitState(_attr_manager, ds, state->get_resolve_class_info());
auto insres = _docsum_states.insert(std::make_pair(summary_class, std::move(state)));
return *insres.first->second;
}
diff --git a/streamingvisitors/src/vespa/vsm/vsm/CMakeLists.txt b/streamingvisitors/src/vespa/vsm/vsm/CMakeLists.txt
index 6afb61078c7..1e766baf0ed 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/CMakeLists.txt
+++ b/streamingvisitors/src/vespa/vsm/vsm/CMakeLists.txt
@@ -9,7 +9,6 @@ vespa_add_library(vsm_vsmbase OBJECT
slimefieldwriter.cpp
snippetmodifier.cpp
vsm-adapter.cpp
- docsumconfig.cpp
DEPENDS
vsm_vconfig
)
diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.cpp b/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.cpp
deleted file mode 100644
index 59e56e657be..00000000000
--- a/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include "docsumconfig.h"
-#include <vespa/searchsummary/docsummary/resultconfig.h>
-#include <vespa/vsm/config/config-vsmfields.h>
-#include "docsum_field_writer_factory.h"
-
-using vespa::config::search::vsm::VsmfieldsConfig;
-
-namespace vsm {
-
-DynamicDocsumConfig::DynamicDocsumConfig(const search::docsummary::IDocsumEnvironment& env, search::docsummary::DynamicDocsumWriter* writer, std::shared_ptr<VsmfieldsConfig> vsm_fields_config)
- : Parent(env, writer),
- _vsm_fields_config(std::move(vsm_fields_config))
-{
-}
-
-std::unique_ptr<search::docsummary::IDocsumFieldWriterFactory>
-DynamicDocsumConfig::make_docsum_field_writer_factory()
-{
- return std::make_unique<DocsumFieldWriterFactory>(getResultConfig().useV8geoPositions(), getEnvironment(), *_vsm_fields_config);
-}
-
-}
diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.h b/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.h
deleted file mode 100644
index 760d493dbc1..00000000000
--- a/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#pragma once
-
-#include <vespa/searchsummary/docsummary/docsumconfig.h>
-
-namespace vespa::config::search::vsm {
-namespace internal { class InternalVsmfieldsType; }
-typedef const internal::InternalVsmfieldsType VsmfieldsConfig;
-}
-namespace vsm {
-
-class DynamicDocsumConfig : public search::docsummary::DynamicDocsumConfig
-{
-public:
- using Parent = search::docsummary::DynamicDocsumConfig;
- using VsmfieldsConfig = vespa::config::search::vsm::VsmfieldsConfig;
-private:
- std::shared_ptr<VsmfieldsConfig> _vsm_fields_config;
-public:
- DynamicDocsumConfig(const search::docsummary::IDocsumEnvironment& env, search::docsummary::DynamicDocsumWriter* writer, std::shared_ptr<VsmfieldsConfig> vsm_fields_config);
-private:
- std::unique_ptr<search::docsummary::IDocsumFieldWriterFactory> make_docsum_field_writer_factory() override;
-};
-
-}
-
diff --git a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
index 2bf6b2f3972..e220cf685e2 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
@@ -1,7 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "vsm-adapter.hpp"
-#include "docsumconfig.h"
+#include "docsum_field_writer_factory.h"
#include "i_matching_elements_filler.h"
#include <vespa/searchlib/common/matching_elements.h>
#include <vespa/searchsummary/docsummary/keywordextractor.h>
@@ -144,16 +144,18 @@ VSMAdapter::configure(const VSMConfigSnapshot & snapshot)
// create new docsum tools
auto docsumTools = std::make_unique<DocsumTools>();
- // configure juniper (used when configuring DynamicDocsumConfig)
+ // configure juniper (used by search::docsummary::DocsumFieldWriterFactory)
_juniperProps = std::make_unique<JuniperProperties>(*juniperrc);
auto juniper = std::make_unique<juniper::Juniper>(_juniperProps.get(), &_wordFolder);
docsumTools->setJuniper(std::move(juniper));
// init result config
auto resCfg = std::make_unique<ResultConfig>();
- if ( ! resCfg->ReadConfig(*summary.get(), _configId.c_str())) {
+ auto docsum_field_writer_factory = std::make_unique<DocsumFieldWriterFactory>(summary.get()->usev8geopositions, *docsumTools, *_fieldsCfg.get());
+ if ( ! resCfg->ReadConfig(*summary.get(), _configId.c_str(), *docsum_field_writer_factory)) {
throw std::runtime_error("(re-)configuration of VSM (docsum tools) failed due to bad summary config");
}
+ docsum_field_writer_factory.reset();
// init keyword extractor
auto kwExtractor = std::make_unique<KeywordExtractor>(nullptr);
@@ -165,10 +167,6 @@ VSMAdapter::configure(const VSMConfigSnapshot & snapshot)
auto writer = std::make_unique<DynamicDocsumWriter>(std::move(resCfg), std::move(kwExtractor));
docsumTools->set_writer(std::move(writer));
- // configure dynamic docsum writer
- DynamicDocsumConfig dynDocsumConfig(*docsumTools, docsumTools->getDocsumWriter(), _fieldsCfg.get());
- dynDocsumConfig.configure(*summaryMap.get());
-
// configure new docsum tools
if (docsumTools->obtainFieldNames(vsmSummary)) {
// latch new docsum tools into production