aboutsummaryrefslogtreecommitdiffstats
path: root/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2022-09-16 15:07:33 +0000
committerGeir Storli <geirst@yahooinc.com>2022-09-16 15:47:52 +0000
commit97c43da510e72a81469da6b275c708bc044f7485 (patch)
treea46a9bda29cdbaeb7ab4460c22ac99bbe0d3294d /streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp
parentcdcd2970ad451bbb944a6bc564f6b0e9a88168b8 (diff)
Unify how errors during setup is handled in DocsumFieldWriterFactory.
Diffstat (limited to 'streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp')
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp40
1 files changed, 19 insertions, 21 deletions
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<DocsumFieldWriter>
-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<DocsumFieldWriter> 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<EmptyDFW>();
- rc = true;
- } else if ((overrideName == "attribute") ||
- (overrideName == "attributecombiner")) {
- if (!argument.empty() && argument != fieldName) {
- fieldWriter = std::make_unique<CopyDFW>(argument);
+ } else if ((command == "attribute") ||
+ (command == "attributecombiner")) {
+ if (!source.empty() && source != field_name) {
+ fieldWriter = std::make_unique<CopyDFW>(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<bool>(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;
}