summaryrefslogtreecommitdiffstats
path: root/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp
index 5bfe41ed1b0..d09f23251e7 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp
@@ -554,7 +554,7 @@ public:
SlimeFiller(Inserter &inserter, bool tokenize)
: _inserter(inserter),
_tokenize(tokenize),
- _matching_elems()
+ _matching_elems(nullptr)
{}
SlimeFiller(Inserter& inserter, bool tokenize, const std::vector<uint32_t>* matching_elems)
@@ -603,22 +603,24 @@ SummaryFieldConverter::convertSummaryField(bool markup,
return SummaryFieldValueConverter(markup, subConv).convert(value);
}
-FieldValue::UP
-SummaryFieldConverter::convert_field_with_filter(bool markup,
- const document::FieldValue& value,
- const std::vector<uint32_t>& matching_elems)
+void
+SummaryFieldConverter::insert_summary_field(const FieldValue& value, vespalib::slime::Inserter& inserter)
{
- SlimeConverter sub_conv(markup, matching_elems);
- return SummaryFieldValueConverter(markup, sub_conv).convert(value);
+ CheckUndefinedValueVisitor check_undefined;
+ value.accept(check_undefined);
+ if (!check_undefined.is_undefined()) {
+ SlimeFiller visitor(inserter, false);
+ value.accept(visitor);
+ }
}
void
-SummaryFieldConverter::insert_summary_field(const FieldValue& value, vespalib::slime::Inserter& inserter)
+SummaryFieldConverter::insert_summary_field_with_filter(const FieldValue& value, vespalib::slime::Inserter& inserter, const std::vector<uint32_t>& matching_elems)
{
CheckUndefinedValueVisitor check_undefined;
value.accept(check_undefined);
if (!check_undefined.is_undefined()) {
- SlimeFiller visitor(inserter, false);
+ SlimeFiller visitor(inserter, false, &matching_elems);
value.accept(visitor);
}
}