summaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorLester Solbakken <lesters@oath.com>2019-02-06 12:29:54 +0100
committerLester Solbakken <lesters@oath.com>2019-02-06 12:29:54 +0100
commit8c3433291f3a290bf5799fcffe7791b92be96e6a (patch)
tree0d28a3ec00469732882681d07aeb8d5769b6fa8e /searchsummary
parent42bb163a8252ec9ee81b8c29eda7ca66b2a50594 (diff)
Don't insert empty multivalued document fields in summary
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp
index 91a7fd45061..72cedb05f7c 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp
@@ -231,10 +231,6 @@ class SummaryFieldValueConverter : protected ConstFieldValueVisitor
FieldValue::UP _field_value;
FieldValueConverter &_structuredFieldConverter;
- void visit(const ArrayFieldValue &value) override {
- _field_value = _structuredFieldConverter.convert(value);
- }
-
template <typename T>
void visitPrimitive(const T &t) {
_field_value.reset(t.clone());
@@ -274,8 +270,16 @@ class SummaryFieldValueConverter : protected ConstFieldValueVisitor
visitPrimitive(value);
}
- void visit(const MapFieldValue & v) override {
- _field_value = _structuredFieldConverter.convert(v);
+ void visit(const ArrayFieldValue &value) override {
+ if (value.size() > 0) {
+ _field_value = _structuredFieldConverter.convert(value);
+ } // else: implicit empty string
+ }
+
+ void visit(const MapFieldValue & value) override {
+ if (value.size() > 0) {
+ _field_value = _structuredFieldConverter.convert(value);
+ } // else: implicit empty string
}
void visit(const StructFieldValue &value) override {
@@ -292,7 +296,9 @@ class SummaryFieldValueConverter : protected ConstFieldValueVisitor
}
void visit(const WeightedSetFieldValue &value) override {
- _field_value = _structuredFieldConverter.convert(value);
+ if (value.size() > 0) {
+ _field_value = _structuredFieldConverter.convert(value);
+ } // else: implicit empty string
}
void visit(const TensorFieldValue &value) override {