diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-09-05 13:07:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-05 13:07:13 +0200 |
commit | 04d8ae826ae56d1d89119fd4fd5ce7f0ab35ec7c (patch) | |
tree | 8554848b7eeb107322ffd3a00683d4666ea1d002 /streamingvisitors | |
parent | 9263243d4036760d67605b4f1497704cb8c4bf02 (diff) |
Revert "Revert "Use commands from summary config to setup document field rewriters.""
Diffstat (limited to 'streamingvisitors')
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 |