diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-08-30 11:16:24 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-08-30 11:16:24 +0200 |
commit | 336a105e86afcdb77fc80166da0e1c673816ff4e (patch) | |
tree | 914fc1bcd5a805c00ae51d86770aa457fe4ffb97 /streamingvisitors | |
parent | c7bcf3cb739b2a9665212da031cf45cb201d8126 (diff) |
Create DocsumTools earlier in vsm adapter.
Diffstat (limited to 'streamingvisitors')
-rw-r--r-- | streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp | 37 | ||||
-rw-r--r-- | streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.h | 3 |
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(); } |