aboutsummaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2020-07-09 14:19:26 +0000
committerGeir Storli <geirst@verizonmedia.com>2020-07-09 14:19:26 +0000
commit9016fa2b7f0e42bbf4097f6678a607d28858b14b (patch)
treebe98f737268a3ab0f46b0ea5cc2cdcd33ddfb4a7 /searchsummary
parent66fa206a9e95fc5a0888b3a2949d70a9ab46d430 (diff)
Add support for matched-elements-only for array and weighted set attributes.
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumconfig.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumconfig.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumconfig.cpp
index f41ada8b2e8..1a269e556d6 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/docsumconfig.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumconfig.cpp
@@ -102,7 +102,11 @@ DynamicDocsumConfig::createFieldWriter(const string & fieldName, const string &
string source_field = argument.empty() ? fieldName : argument;
if (getEnvironment() && getEnvironment()->getAttributeManager()) {
auto attr_ctx = getEnvironment()->getAttributeManager()->createContext();
- fieldWriter = AttributeCombinerDFW::create(source_field, *attr_ctx, true, matching_elems_fields);
+ if (attr_ctx->getAttribute(source_field) != nullptr) {
+ fieldWriter = AttributeDFWFactory::create(*getEnvironment()->getAttributeManager(), source_field, true, matching_elems_fields);
+ } else {
+ fieldWriter = AttributeCombinerDFW::create(source_field, *attr_ctx, true, matching_elems_fields);
+ }
rc = static_cast<bool>(fieldWriter);
}
} else if (overrideName == "matchedelementsfilter") {