summaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/general_result.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/general_result.cpp b/searchsummary/src/vespa/searchsummary/docsummary/general_result.cpp
index a6a5263f5ac..030cf7e82c1 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/general_result.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/general_result.cpp
@@ -3,6 +3,7 @@
#include "general_result.h"
#include "resultconfig.h"
#include <vespa/document/fieldvalue/document.h>
+#include <vespa/document/datatype/datatype.h>
#include <zlib.h>
#include <cassert>
@@ -96,7 +97,13 @@ std::unique_ptr<document::FieldValue>
GeneralResult::get_field_value(const vespalib::string& field_name) const
{
if (_document != nullptr) {
- return _document->getValue(field_name);
+ const document::Field & field = _document->getField(field_name);
+ auto value(field.getDataType().createFieldValue());
+ if (value) {
+ if (_document->getValue(field, *value)) {
+ return value;
+ }
+ }
}
return std::unique_ptr<document::FieldValue>();
}