summaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp
index c968158b9c2..6b003553f49 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp
@@ -157,10 +157,14 @@ insertFromAttr(const attribute::IAttributeVector &attribute, uint32_t docid, ves
uint32_t numValues = pos.size();
LOG(debug, "docid=%d, numValues=%d", docid, numValues);
if (numValues > 0) {
- vespalib::slime::Cursor &arr = target.insertArray();
- for (uint32_t i = 0; i < numValues; i++) {
- vespalib::slime::ArrayInserter ai(arr);
- insertPos(pos[i], ai);
+ if (attribute.getCollectionType() == attribute::CollectionType::SINGLE) {
+ insertPos(pos[0], target);
+ } else {
+ vespalib::slime::Cursor &arr = target.insertArray();
+ for (uint32_t i = 0; i < numValues; i++) {
+ vespalib::slime::ArrayInserter ai(arr);
+ insertPos(pos[i], ai);
+ }
}
}
}