summaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp
index a5fe08da605..5341379fe96 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp
@@ -134,6 +134,7 @@ public:
DocsumStoreVsmDocument(const document::Document* document);
~DocsumStoreVsmDocument() override;
std::unique_ptr<document::FieldValue> get_field_value(const vespalib::string& field_name) const override;
+ void insert_summary_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter) const override;
};
DocsumStoreVsmDocument::DocsumStoreVsmDocument(const document::Document* document)
@@ -158,6 +159,19 @@ DocsumStoreVsmDocument::get_field_value(const vespalib::string& field_name) cons
return {};
}
+void
+DocsumStoreVsmDocument::insert_summary_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter) const
+{
+ auto field_value = get_field_value(field_name);
+ if (field_value) {
+ CheckUndefinedValueVisitor check_undefined;
+ field_value->accept(check_undefined);
+ if (!check_undefined.is_undefined()) {
+ SummaryFieldConverter::insert_summary_field(false, *field_value, inserter);
+ }
+ }
+}
+
}
FieldPath