From 97c43da510e72a81469da6b275c708bc044f7485 Mon Sep 17 00:00:00 2001 From: Geir Storli Date: Fri, 16 Sep 2022 15:07:33 +0000 Subject: Unify how errors during setup is handled in DocsumFieldWriterFactory. --- .../vespa/vsm/vsm/docsum_field_writer_factory.cpp | 40 ++++++++++------------ .../vespa/vsm/vsm/docsum_field_writer_factory.h | 4 ++- 2 files changed, 22 insertions(+), 22 deletions(-) (limited to 'streamingvisitors') diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp b/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp index 35410f3ec67..d5ecb158edb 100644 --- a/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp +++ b/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp @@ -44,35 +44,33 @@ DocsumFieldWriterFactory::DocsumFieldWriterFactory(bool use_v8_geo_positions, co DocsumFieldWriterFactory::~DocsumFieldWriterFactory() = default; std::unique_ptr -DocsumFieldWriterFactory::create_docsum_field_writer(const vespalib::string& fieldName, const vespalib::string& overrideName, const vespalib::string& argument, bool& rc) +DocsumFieldWriterFactory::create_docsum_field_writer(const vespalib::string& field_name, + const vespalib::string& command, + const vespalib::string& source) { std::unique_ptr fieldWriter; - if ((overrideName == "staticrank") || - (overrideName == "ranklog") || - (overrideName == "label") || - (overrideName == "project") || - (overrideName == "positions") || - (overrideName == "absdist") || - (overrideName == "subproject")) + if ((command == "staticrank") || + (command == "ranklog") || + (command == "label") || + (command == "project") || + (command == "positions") || + (command == "absdist") || + (command == "subproject")) { fieldWriter = std::make_unique(); - rc = true; - } else if ((overrideName == "attribute") || - (overrideName == "attributecombiner")) { - if (!argument.empty() && argument != fieldName) { - fieldWriter = std::make_unique(argument); + } else if ((command == "attribute") || + (command == "attributecombiner")) { + if (!source.empty() && source != field_name) { + fieldWriter = std::make_unique(source); } - rc = true; - } else if (overrideName == "geopos") { - rc = true; - } else if ((overrideName == "matchedattributeelementsfilter") || - (overrideName == "matchedelementsfilter")) { - vespalib::string source_field = argument.empty() ? fieldName : argument; + } else if (command == "geopos") { + } else if ((command == "matchedattributeelementsfilter") || + (command == "matchedelementsfilter")) { + vespalib::string source_field = source.empty() ? field_name : source; populate_fields(*_matching_elems_fields, _vsm_fields_config, source_field); fieldWriter = MatchedElementsFilterDFW::create(source_field, _matching_elems_fields); - rc = static_cast(fieldWriter); } else { - return search::docsummary::DocsumFieldWriterFactory::create_docsum_field_writer(fieldName, overrideName, argument, rc); + return search::docsummary::DocsumFieldWriterFactory::create_docsum_field_writer(field_name, command, source); } return fieldWriter; } diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.h b/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.h index c06cb0454b3..17c270292e2 100644 --- a/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.h +++ b/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.h @@ -19,7 +19,9 @@ public: DocsumFieldWriterFactory(bool use_v8_geo_positions, const search::docsummary::IDocsumEnvironment& env, const vespa::config::search::vsm::VsmfieldsConfig& vsm_fields_config); ~DocsumFieldWriterFactory() override; std::unique_ptr - create_docsum_field_writer(const vespalib::string& fieldName, const vespalib::string& overrideName, const vespalib::string& argument, bool& rc) override; + create_docsum_field_writer(const vespalib::string& field_name, + const vespalib::string& command, + const vespalib::string& source) override; }; } -- cgit v1.2.3