diff options
Diffstat (limited to 'searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp')
-rw-r--r-- | searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp | 20 |
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); } } |