aboutsummaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-08-30 11:16:24 +0200
committerTor Egge <Tor.Egge@online.no>2022-08-30 11:16:24 +0200
commit336a105e86afcdb77fc80166da0e1c673816ff4e (patch)
tree914fc1bcd5a805c00ae51d86770aa457fe4ffb97 /streamingvisitors
parentc7bcf3cb739b2a9665212da031cf45cb201d8126 (diff)
Create DocsumTools earlier in vsm adapter.
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp37
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.h3
2 files changed, 25 insertions, 15 deletions
diff --git a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
index aa1cf124fee..03965e6c63e 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
@@ -70,16 +70,24 @@ DocsumTools::FieldSpec::FieldSpec() :
DocsumTools::FieldSpec::~FieldSpec() = default;
-DocsumTools::DocsumTools(std::unique_ptr<DynamicDocsumWriter> writer) :
- _writer(std::move(writer)),
- _juniper(),
- _resultClass(),
- _fieldSpecs()
-{ }
+DocsumTools::DocsumTools()
+ : IDocsumEnvironment(),
+ _writer(),
+ _juniper(),
+ _resultClass(),
+ _fieldSpecs()
+{
+}
DocsumTools::~DocsumTools() = default;
+void
+DocsumTools::set_writer(std::unique_ptr<DynamicDocsumWriter> writer)
+{
+ _writer = std::move(writer);
+}
+
bool
DocsumTools::obtainFieldNames(const FastS_VsmsummaryHandle &cfg)
{
@@ -135,6 +143,14 @@ VSMAdapter::configure(const VSMConfigSnapshot & snapshot)
LOG(debug, "configureVsmSummary(): Size of cfg fieldmap: %zd", vsmSummary->fieldmap.size()); // UlfC: debugging
LOG(debug, "configureVsmSummary(): outputclass='%s'", vsmSummary->outputclass.c_str()); // UlfC: debugging
+ // create new docsum tools
+ auto docsumTools = std::make_unique<DocsumTools>();
+
+ // configure juniper (used when configuring DynamicDocsumConfig)
+ _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())) {
@@ -149,14 +165,7 @@ VSMAdapter::configure(const VSMConfigSnapshot & snapshot)
// create dynamic docsum writer
auto writer = std::make_unique<DynamicDocsumWriter>(std::move(resCfg), std::move(kwExtractor));
-
- // configure juniper (used when configuring DynamicDocsumConfig)
- _juniperProps = std::make_unique<JuniperProperties>(*juniperrc);
- auto juniper = std::make_unique<juniper::Juniper>(_juniperProps.get(), &_wordFolder);
-
- // create new docsum tools
- auto docsumTools = std::make_unique<DocsumTools>(std::move(writer));
- docsumTools->setJuniper(std::move(juniper));
+ docsumTools->set_writer(std::move(writer));
// configure dynamic docsum writer
DynamicDocsumConfig dynDocsumConfig(docsumTools.get(), docsumTools->getDocsumWriter(), _fieldsCfg.get());
diff --git a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.h b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.h
index 656ab2e8fc6..2788475b4ad 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.h
+++ b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.h
@@ -77,8 +77,9 @@ private:
DocsumTools &operator=(const DocsumTools &);
public:
- DocsumTools(std::unique_ptr<DynamicDocsumWriter> writer);
+ DocsumTools();
~DocsumTools();
+ void set_writer(std::unique_ptr<DynamicDocsumWriter> writer);
void setJuniper(std::unique_ptr<juniper::Juniper> juniper) { _juniper = std::move(juniper); }
const ResultConfig *getResultConfig() const { return _writer->GetResultConfig(); }
DynamicDocsumWriter *getDocsumWriter() const { return _writer.get(); }