summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2021-07-02 17:18:01 +0200
committerGitHub <noreply@github.com>2021-07-02 17:18:01 +0200
commit9a4add09d54a656e333d06aa4e78c7bd3e4e2ece (patch)
tree13800f952573e49779c5259929e05d81418dabd7 /config-model
parent910fbc28f104b7203ae123801b51b9a7cd03b886 (diff)
parente0d763e03052c4cbd11b270732bcbb1a88ee5222 (diff)
Merge pull request #18523 from vespa-engine/geirst/omit-summary-features
Add support for omitting summary features for a document summary
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryClass.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java9
-rw-r--r--config-model/src/main/javacc/SDParser.jj2
-rw-r--r--config-model/src/test/derived/advanced/summary.cfg2
-rw-r--r--config-model/src/test/derived/array_of_struct_attribute/summary.cfg1
-rw-r--r--config-model/src/test/derived/attributeprefetch/summary.cfg54
-rw-r--r--config-model/src/test/derived/complex/summary.cfg82
-rw-r--r--config-model/src/test/derived/emptychild/summary.cfg2
-rw-r--r--config-model/src/test/derived/emptydefault/summary.cfg1
-rw-r--r--config-model/src/test/derived/id/summary.cfg1
-rw-r--r--config-model/src/test/derived/imported_position_field/summary.cfg34
-rw-r--r--config-model/src/test/derived/imported_position_field_summary/summary.cfg3
-rw-r--r--config-model/src/test/derived/imported_struct_fields/summary.cfg88
-rw-r--r--config-model/src/test/derived/importedfields/summary.cfg3
-rw-r--r--config-model/src/test/derived/indexswitches/summary.cfg1
-rw-r--r--config-model/src/test/derived/inheritance/summary.cfg2
-rw-r--r--config-model/src/test/derived/integerattributetostringindex/summary.cfg2
-rw-r--r--config-model/src/test/derived/map_attribute/summary.cfg1
-rw-r--r--config-model/src/test/derived/map_of_struct_attribute/summary.cfg1
-rw-r--r--config-model/src/test/derived/mlr/summary.cfg2
-rw-r--r--config-model/src/test/derived/music/summary.cfg2
-rw-r--r--config-model/src/test/derived/newrank/summary.cfg2
-rw-r--r--config-model/src/test/derived/position_nosummary/summary.cfg2
-rw-r--r--config-model/src/test/derived/position_summary/summary.cfg2
-rw-r--r--config-model/src/test/derived/predicate_attribute/summary.cfg2
-rw-r--r--config-model/src/test/derived/rankexpression/summary.cfg2
-rw-r--r--config-model/src/test/derived/ranktypes/summary.cfg1
-rw-r--r--config-model/src/test/derived/reference_fields/summary.cfg3
-rw-r--r--config-model/src/test/derived/streamingstruct/summary.cfg2
-rw-r--r--config-model/src/test/derived/streamingstructdefault/summary.cfg1
-rw-r--r--config-model/src/test/derived/tensor/summary.cfg2
-rw-r--r--config-model/src/test/derived/types/summary.cfg2
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java28
33 files changed, 222 insertions, 125 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryClass.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryClass.java
index af2168545dc..c173b2c11d9 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryClass.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryClass.java
@@ -28,6 +28,7 @@ public class SummaryClass extends Derived {
/** True if this summary class needs to access summary information on disk */
private boolean accessingDiskSummary = false;
private final boolean rawAsBase64;
+ private final boolean omitSummaryFeatures;
/** The summary fields of this indexed by name */
private Map<String,SummaryClassField> fields = new java.util.LinkedHashMap<>();
@@ -44,6 +45,7 @@ public class SummaryClass extends Derived {
public SummaryClass(Search search, DocumentSummary summary, DeployLogger deployLogger) {
this.deployLogger = deployLogger;
this.rawAsBase64 = search.isRawAsBase64();
+ this.omitSummaryFeatures = summary.omitSummaryFeatures();
deriveName(summary);
deriveFields(search,summary);
deriveImplicitFields(summary);
@@ -128,7 +130,8 @@ public class SummaryClass extends Derived {
}
classBuilder.
id(id).
- name(getName());
+ name(getName()).
+ omitsummaryfeatures(omitSummaryFeatures);
for (SummaryClassField field : fields.values() ) {
classBuilder.fields(new SummaryConfig.Classes.Fields.Builder().
name(field.getName()).
diff --git a/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java b/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java
index 3c6aa881af4..454d0f08ff0 100644
--- a/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java
+++ b/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java
@@ -14,6 +14,7 @@ import java.util.List;
public class DocumentSummary extends FieldView {
private boolean fromDisk = false;
+ private boolean omitSummaryFeatures = false;
private DocumentSummary inherited;
/**
@@ -30,6 +31,14 @@ public class DocumentSummary extends FieldView {
/** Returns whether the user has noted explicitly that this summary accesses disk */
public boolean isFromDisk() { return fromDisk; }
+ public void setOmitSummaryFeatures(boolean value) {
+ omitSummaryFeatures = value;
+ }
+
+ public boolean omitSummaryFeatures() {
+ return omitSummaryFeatures;
+ }
+
/**
* The model is constrained to ensure that summary fields of the same name
* in different classes have the same summary transform, because this is
diff --git a/config-model/src/main/javacc/SDParser.jj b/config-model/src/main/javacc/SDParser.jj
index c247100db76..fb24b50aa99 100644
--- a/config-model/src/main/javacc/SDParser.jj
+++ b/config-model/src/main/javacc/SDParser.jj
@@ -291,6 +291,7 @@ TOKEN :
| < TO: "to" >
| < DIRECT: "direct" >
| < FROMDISK: "from-disk" >
+| < OMITSUMMARYFEATURES: "omit-summary-features" >
| < ALWAYS: "always" >
| < ONDEMAND: "on-demand" >
| < NEVER: "never" >
@@ -1767,6 +1768,7 @@ Object documentSummary(Search search) :
lbrace()
(
<FROMDISK> { summary.setFromDisk(true); } |
+ <OMITSUMMARYFEATURES> { summary.setOmitSummaryFeatures(true); } |
documentSummaryItem(summary) |
<NL>
)*
diff --git a/config-model/src/test/derived/advanced/summary.cfg b/config-model/src/test/derived/advanced/summary.cfg
index a56d0e6aa4f..f497461b460 100644
--- a/config-model/src/test/derived/advanced/summary.cfg
+++ b/config-model/src/test/derived/advanced/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1271952241
classes[].id 1271952241
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "debug"
classes[].fields[].type "longstring"
classes[].fields[].name "attributes"
@@ -25,6 +26,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 472092010
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "location_zcurve"
classes[].fields[].type "int64"
classes[].fields[].name "rankfeatures"
diff --git a/config-model/src/test/derived/array_of_struct_attribute/summary.cfg b/config-model/src/test/derived/array_of_struct_attribute/summary.cfg
index c1679c57d1a..965c875d5ce 100644
--- a/config-model/src/test/derived/array_of_struct_attribute/summary.cfg
+++ b/config-model/src/test/derived/array_of_struct_attribute/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 252850086
classes[].id 252850086
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "elem_array"
classes[].fields[].type "jsonstring"
classes[].fields[].name "rankfeatures"
diff --git a/config-model/src/test/derived/attributeprefetch/summary.cfg b/config-model/src/test/derived/attributeprefetch/summary.cfg
index 13b17464946..f0189f9a3c7 100644
--- a/config-model/src/test/derived/attributeprefetch/summary.cfg
+++ b/config-model/src/test/derived/attributeprefetch/summary.cfg
@@ -1,27 +1,29 @@
defaultsummaryid 1151071433
-classes[0].id 1151071433
-classes[0].name "default"
-classes[0].fields[0].name "rankfeatures"
-classes[0].fields[0].type "featuredata"
-classes[0].fields[1].name "summaryfeatures"
-classes[0].fields[1].type "featuredata"
-classes[0].fields[2].name "documentid"
-classes[0].fields[2].type "longstring"
-classes[1].id 1980470965
-classes[1].name "attributeprefetch"
-classes[1].fields[0].name "singlebyte"
-classes[1].fields[0].type "byte"
-classes[1].fields[1].name "singleint"
-classes[1].fields[1].type "integer"
-classes[1].fields[2].name "singlelong"
-classes[1].fields[2].type "int64"
-classes[1].fields[3].name "singlefloat"
-classes[1].fields[3].type "float"
-classes[1].fields[4].name "singledouble"
-classes[1].fields[4].type "double"
-classes[1].fields[5].name "singlestring"
-classes[1].fields[5].type "longstring"
-classes[1].fields[6].name "rankfeatures"
-classes[1].fields[6].type "featuredata"
-classes[1].fields[7].name "summaryfeatures"
-classes[1].fields[7].type "featuredata" \ No newline at end of file
+classes[].id 1151071433
+classes[].name "default"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "documentid"
+classes[].fields[].type "longstring"
+classes[].id 1980470965
+classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "singlebyte"
+classes[].fields[].type "byte"
+classes[].fields[].name "singleint"
+classes[].fields[].type "integer"
+classes[].fields[].name "singlelong"
+classes[].fields[].type "int64"
+classes[].fields[].name "singlefloat"
+classes[].fields[].type "float"
+classes[].fields[].name "singledouble"
+classes[].fields[].type "double"
+classes[].fields[].name "singlestring"
+classes[].fields[].type "longstring"
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
diff --git a/config-model/src/test/derived/complex/summary.cfg b/config-model/src/test/derived/complex/summary.cfg
index 5bb472b5f41..2dac4736d23 100644
--- a/config-model/src/test/derived/complex/summary.cfg
+++ b/config-model/src/test/derived/complex/summary.cfg
@@ -1,41 +1,43 @@
defaultsummaryid 1506848752
-classes[0].id 1506848752
-classes[0].name "default"
-classes[0].fields[0].name "woe"
-classes[0].fields[0].type "longstring"
-classes[0].fields[1].name "exact"
-classes[0].fields[1].type "longstring"
-classes[0].fields[2].name "title"
-classes[0].fields[2].type "longstring"
-classes[0].fields[3].name "dyntitle"
-classes[0].fields[3].type "longstring"
-classes[0].fields[4].name "source"
-classes[0].fields[4].type "longstring"
-classes[0].fields[5].name "stringfield"
-classes[0].fields[5].type "longstring"
-classes[0].fields[6].name "rankfeatures"
-classes[0].fields[6].type "featuredata"
-classes[0].fields[7].name "summaryfeatures"
-classes[0].fields[7].type "featuredata"
-classes[0].fields[8].name "documentid"
-classes[0].fields[8].type "longstring"
-classes[1].id 128090024
-classes[1].name "attributeprefetch"
-classes[1].fields[0].name "year_sub"
-classes[1].fields[0].type "integer"
-classes[1].fields[1].name "prefixenabled"
-classes[1].fields[1].type "longstring"
-classes[1].fields[2].name "fleeting2"
-classes[1].fields[2].type "float"
-classes[1].fields[3].name "foundat"
-classes[1].fields[3].type "int64"
-classes[1].fields[4].name "collapseby"
-classes[1].fields[4].type "integer"
-classes[1].fields[5].name "ts"
-classes[1].fields[5].type "int64"
-classes[1].fields[6].name "combineda"
-classes[1].fields[6].type "integer"
-classes[1].fields[7].name "rankfeatures"
-classes[1].fields[7].type "featuredata"
-classes[1].fields[8].name "summaryfeatures"
-classes[1].fields[8].type "featuredata" \ No newline at end of file
+classes[].id 1506848752
+classes[].name "default"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "woe"
+classes[].fields[].type "longstring"
+classes[].fields[].name "exact"
+classes[].fields[].type "longstring"
+classes[].fields[].name "title"
+classes[].fields[].type "longstring"
+classes[].fields[].name "dyntitle"
+classes[].fields[].type "longstring"
+classes[].fields[].name "source"
+classes[].fields[].type "longstring"
+classes[].fields[].name "stringfield"
+classes[].fields[].type "longstring"
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "documentid"
+classes[].fields[].type "longstring"
+classes[].id 128090024
+classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "year_sub"
+classes[].fields[].type "integer"
+classes[].fields[].name "prefixenabled"
+classes[].fields[].type "longstring"
+classes[].fields[].name "fleeting2"
+classes[].fields[].type "float"
+classes[].fields[].name "foundat"
+classes[].fields[].type "int64"
+classes[].fields[].name "collapseby"
+classes[].fields[].type "integer"
+classes[].fields[].name "ts"
+classes[].fields[].type "int64"
+classes[].fields[].name "combineda"
+classes[].fields[].type "integer"
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
diff --git a/config-model/src/test/derived/emptychild/summary.cfg b/config-model/src/test/derived/emptychild/summary.cfg
index ed3a61a5de5..82bed7fd55e 100644
--- a/config-model/src/test/derived/emptychild/summary.cfg
+++ b/config-model/src/test/derived/emptychild/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1814603381
classes[].id 1814603381
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "a1"
classes[].fields[].type "longstring"
classes[].fields[].name "rankfeatures"
@@ -11,6 +12,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 1490368133
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "a1"
classes[].fields[].type "longstring"
classes[].fields[].name "rankfeatures"
diff --git a/config-model/src/test/derived/emptydefault/summary.cfg b/config-model/src/test/derived/emptydefault/summary.cfg
index e47f24b21c3..61294d97b4c 100644
--- a/config-model/src/test/derived/emptydefault/summary.cfg
+++ b/config-model/src/test/derived/emptydefault/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1151071433
classes[].id 1151071433
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "rankfeatures"
classes[].fields[].type "featuredata"
classes[].fields[].name "summaryfeatures"
diff --git a/config-model/src/test/derived/id/summary.cfg b/config-model/src/test/derived/id/summary.cfg
index dbc9a90ebce..b50b970afe2 100644
--- a/config-model/src/test/derived/id/summary.cfg
+++ b/config-model/src/test/derived/id/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1814716401
classes[].id 1814716401
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "uri"
classes[].fields[].type "longstring"
classes[].fields[].name "rankfeatures"
diff --git a/config-model/src/test/derived/imported_position_field/summary.cfg b/config-model/src/test/derived/imported_position_field/summary.cfg
index 8da2598a5fc..3ab8e7e29e5 100644
--- a/config-model/src/test/derived/imported_position_field/summary.cfg
+++ b/config-model/src/test/derived/imported_position_field/summary.cfg
@@ -1,17 +1,19 @@
defaultsummaryid 1570252291
-classes[0].id 1570252291
-classes[0].name "default"
-classes[0].fields[0].name "parent_ref"
-classes[0].fields[0].type "longstring"
-classes[0].fields[1].name "rankfeatures"
-classes[0].fields[1].type "featuredata"
-classes[0].fields[2].name "summaryfeatures"
-classes[0].fields[2].type "featuredata"
-classes[0].fields[3].name "documentid"
-classes[0].fields[3].type "longstring"
-classes[1].id 1274088866
-classes[1].name "attributeprefetch"
-classes[1].fields[0].name "rankfeatures"
-classes[1].fields[0].type "featuredata"
-classes[1].fields[1].name "summaryfeatures"
-classes[1].fields[1].type "featuredata" \ No newline at end of file
+classes[].id 1570252291
+classes[].name "default"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "parent_ref"
+classes[].fields[].type "longstring"
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "documentid"
+classes[].fields[].type "longstring"
+classes[].id 1274088866
+classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
diff --git a/config-model/src/test/derived/imported_position_field_summary/summary.cfg b/config-model/src/test/derived/imported_position_field_summary/summary.cfg
index b607786ca36..76faac23170 100644
--- a/config-model/src/test/derived/imported_position_field_summary/summary.cfg
+++ b/config-model/src/test/derived/imported_position_field_summary/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1194448774
classes[].id 1194448774
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "parent_ref"
classes[].fields[].type "longstring"
classes[].fields[].name "rankfeatures"
@@ -17,6 +18,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 890647799
classes[].name "mysummary"
+classes[].omitsummaryfeatures false
classes[].fields[].name "my_pos"
classes[].fields[].type "jsonstring"
classes[].fields[].name "rankfeatures"
@@ -29,6 +31,7 @@ classes[].fields[].name "my_pos.distance"
classes[].fields[].type "integer"
classes[].id 1274088866
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "rankfeatures"
classes[].fields[].type "featuredata"
classes[].fields[].name "summaryfeatures"
diff --git a/config-model/src/test/derived/imported_struct_fields/summary.cfg b/config-model/src/test/derived/imported_struct_fields/summary.cfg
index 3a9bf4f5e0a..ab6c6853925 100644
--- a/config-model/src/test/derived/imported_struct_fields/summary.cfg
+++ b/config-model/src/test/derived/imported_struct_fields/summary.cfg
@@ -1,43 +1,47 @@
defaultsummaryid 1570252291
-classes[0].id 1570252291
-classes[0].name "default"
-classes[0].fields[0].name "parent_ref"
-classes[0].fields[0].type "longstring"
-classes[0].fields[1].name "rankfeatures"
-classes[0].fields[1].type "featuredata"
-classes[0].fields[2].name "summaryfeatures"
-classes[0].fields[2].type "featuredata"
-classes[0].fields[3].name "documentid"
-classes[0].fields[3].type "longstring"
-classes[1].id 2126652894
-classes[1].name "mysummary"
-classes[1].fields[0].name "documentid"
-classes[1].fields[0].type "longstring"
-classes[1].fields[1].name "my_elem_array"
-classes[1].fields[1].type "jsonstring"
-classes[1].fields[2].name "my_elem_map"
-classes[1].fields[2].type "jsonstring"
-classes[1].fields[3].name "my_str_int_map"
-classes[1].fields[3].type "jsonstring"
-classes[1].fields[4].name "rankfeatures"
-classes[1].fields[4].type "featuredata"
-classes[1].fields[5].name "summaryfeatures"
-classes[1].fields[5].type "featuredata"
-classes[2].id 1629947863
-classes[2].name "filtered"
-classes[2].fields[0].name "elem_array_filtered"
-classes[2].fields[0].type "jsonstring"
-classes[2].fields[1].name "elem_map_filtered"
-classes[2].fields[1].type "jsonstring"
-classes[2].fields[2].name "str_int_map_filtered"
-classes[2].fields[2].type "jsonstring"
-classes[2].fields[3].name "rankfeatures"
-classes[2].fields[3].type "featuredata"
-classes[2].fields[4].name "summaryfeatures"
-classes[2].fields[4].type "featuredata"
-classes[3].id 1274088866
-classes[3].name "attributeprefetch"
-classes[3].fields[0].name "rankfeatures"
-classes[3].fields[0].type "featuredata"
-classes[3].fields[1].name "summaryfeatures"
-classes[3].fields[1].type "featuredata" \ No newline at end of file
+classes[].id 1570252291
+classes[].name "default"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "parent_ref"
+classes[].fields[].type "longstring"
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "documentid"
+classes[].fields[].type "longstring"
+classes[].id 2126652894
+classes[].name "mysummary"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "documentid"
+classes[].fields[].type "longstring"
+classes[].fields[].name "my_elem_array"
+classes[].fields[].type "jsonstring"
+classes[].fields[].name "my_elem_map"
+classes[].fields[].type "jsonstring"
+classes[].fields[].name "my_str_int_map"
+classes[].fields[].type "jsonstring"
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
+classes[].id 1629947863
+classes[].name "filtered"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "elem_array_filtered"
+classes[].fields[].type "jsonstring"
+classes[].fields[].name "elem_map_filtered"
+classes[].fields[].type "jsonstring"
+classes[].fields[].name "str_int_map_filtered"
+classes[].fields[].type "jsonstring"
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
+classes[].id 1274088866
+classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
diff --git a/config-model/src/test/derived/importedfields/summary.cfg b/config-model/src/test/derived/importedfields/summary.cfg
index f95949cfa62..74b5b44214e 100644
--- a/config-model/src/test/derived/importedfields/summary.cfg
+++ b/config-model/src/test/derived/importedfields/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1294344677
classes[].id 1294344677
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "b_ref_with_summary"
classes[].fields[].type "longstring"
classes[].fields[].name "rankfeatures"
@@ -11,6 +12,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 159551552
classes[].name "mysummary"
+classes[].omitsummaryfeatures false
classes[].fields[].name "a_ref"
classes[].fields[].type "longstring"
classes[].fields[].name "b_ref_with_summary"
@@ -33,6 +35,7 @@ classes[].fields[].name "summaryfeatures"
classes[].fields[].type "featuredata"
classes[].id 1274088866
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "rankfeatures"
classes[].fields[].type "featuredata"
classes[].fields[].name "summaryfeatures"
diff --git a/config-model/src/test/derived/indexswitches/summary.cfg b/config-model/src/test/derived/indexswitches/summary.cfg
index 5bdc8fcdef4..d04bc4eb167 100644
--- a/config-model/src/test/derived/indexswitches/summary.cfg
+++ b/config-model/src/test/derived/indexswitches/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1698765342
classes[].id 1698765342
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "source"
classes[].fields[].type "longstring"
classes[].fields[].name "title"
diff --git a/config-model/src/test/derived/inheritance/summary.cfg b/config-model/src/test/derived/inheritance/summary.cfg
index dde71a1378c..dde9f95ecbe 100644
--- a/config-model/src/test/derived/inheritance/summary.cfg
+++ b/config-model/src/test/derived/inheritance/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1797992819
classes[].id 1797992819
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "onlyfather"
classes[].fields[].type "longstring"
classes[].fields[].name "rankfeatures"
@@ -11,6 +12,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 1608562186
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "onlygrandparent"
classes[].fields[].type "integer"
classes[].fields[].name "overridden"
diff --git a/config-model/src/test/derived/integerattributetostringindex/summary.cfg b/config-model/src/test/derived/integerattributetostringindex/summary.cfg
index 267585e3fda..d5eb316ff01 100644
--- a/config-model/src/test/derived/integerattributetostringindex/summary.cfg
+++ b/config-model/src/test/derived/integerattributetostringindex/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1195656216
classes[].id 1195656216
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "attinx"
classes[].fields[].type "integer"
classes[].fields[].name "artist"
@@ -17,6 +18,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 1706878063
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "attinx"
classes[].fields[].type "integer"
classes[].fields[].name "artist"
diff --git a/config-model/src/test/derived/map_attribute/summary.cfg b/config-model/src/test/derived/map_attribute/summary.cfg
index 24d6cab7697..b465bdfa541 100644
--- a/config-model/src/test/derived/map_attribute/summary.cfg
+++ b/config-model/src/test/derived/map_attribute/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1376056200
classes[].id 1376056200
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "str_map"
classes[].fields[].type "jsonstring"
classes[].fields[].name "int_map"
diff --git a/config-model/src/test/derived/map_of_struct_attribute/summary.cfg b/config-model/src/test/derived/map_of_struct_attribute/summary.cfg
index f70025c8f02..67988dbf30e 100644
--- a/config-model/src/test/derived/map_of_struct_attribute/summary.cfg
+++ b/config-model/src/test/derived/map_of_struct_attribute/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1131098132
classes[].id 1131098132
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "str_elem_map"
classes[].fields[].type "jsonstring"
classes[].fields[].name "int_elem_map"
diff --git a/config-model/src/test/derived/mlr/summary.cfg b/config-model/src/test/derived/mlr/summary.cfg
index cb5bf17df84..b6a53a9a1d9 100644
--- a/config-model/src/test/derived/mlr/summary.cfg
+++ b/config-model/src/test/derived/mlr/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1868876861
classes[].id 1868876861
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "a"
classes[].fields[].type "longstring"
classes[].fields[].name "b"
@@ -13,6 +14,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 1944325986
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "a"
classes[].fields[].type "longstring"
classes[].fields[].name "ranklog"
diff --git a/config-model/src/test/derived/music/summary.cfg b/config-model/src/test/derived/music/summary.cfg
index 3eca077dbc8..bc55727b407 100644
--- a/config-model/src/test/derived/music/summary.cfg
+++ b/config-model/src/test/derived/music/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 2086497905
classes[].id 2086497905
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "bgndata"
classes[].fields[].type "longstring"
classes[].fields[].name "sales"
@@ -79,6 +80,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 2060710706
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "sales"
classes[].fields[].type "integer"
classes[].fields[].name "pto"
diff --git a/config-model/src/test/derived/newrank/summary.cfg b/config-model/src/test/derived/newrank/summary.cfg
index 7cd92c26e02..0b98b20c342 100644
--- a/config-model/src/test/derived/newrank/summary.cfg
+++ b/config-model/src/test/derived/newrank/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 912980235
classes[].id 912980235
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "bgndata"
classes[].fields[].type "longstring"
classes[].fields[].name "sales"
@@ -71,6 +72,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 1606815285
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "sales"
classes[].fields[].type "integer"
classes[].fields[].name "pto"
diff --git a/config-model/src/test/derived/position_nosummary/summary.cfg b/config-model/src/test/derived/position_nosummary/summary.cfg
index fad012393ef..4222e88cc2f 100644
--- a/config-model/src/test/derived/position_nosummary/summary.cfg
+++ b/config-model/src/test/derived/position_nosummary/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1727020212
classes[].id 1727020212
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "pos.position"
classes[].fields[].type "xmlstring"
classes[].fields[].name "pos.distance"
@@ -13,6 +14,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 1530141163
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "pos_zcurve"
classes[].fields[].type "int64"
classes[].fields[].name "rankfeatures"
diff --git a/config-model/src/test/derived/position_summary/summary.cfg b/config-model/src/test/derived/position_summary/summary.cfg
index af801f43cc0..f54066d865e 100644
--- a/config-model/src/test/derived/position_summary/summary.cfg
+++ b/config-model/src/test/derived/position_summary/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 230670304
classes[].id 230670304
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "pos"
classes[].fields[].type "jsonstring"
classes[].fields[].name "pos.position"
@@ -15,6 +16,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 1530141163
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "pos_zcurve"
classes[].fields[].type "int64"
classes[].fields[].name "rankfeatures"
diff --git a/config-model/src/test/derived/predicate_attribute/summary.cfg b/config-model/src/test/derived/predicate_attribute/summary.cfg
index 6e33bd4e567..9cc613107e0 100644
--- a/config-model/src/test/derived/predicate_attribute/summary.cfg
+++ b/config-model/src/test/derived/predicate_attribute/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1391971216
classes[].id 1391971216
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "some_predicate_field"
classes[].fields[].type "string"
classes[].fields[].name "rankfeatures"
@@ -11,6 +12,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 1274088866
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "rankfeatures"
classes[].fields[].type "featuredata"
classes[].fields[].name "summaryfeatures"
diff --git a/config-model/src/test/derived/rankexpression/summary.cfg b/config-model/src/test/derived/rankexpression/summary.cfg
index f8b56baf8f2..4f417a848a7 100644
--- a/config-model/src/test/derived/rankexpression/summary.cfg
+++ b/config-model/src/test/derived/rankexpression/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1753207254
classes[].id 1753207254
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "artist"
classes[].fields[].type "longstring"
classes[].fields[].name "title"
@@ -17,6 +18,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 1736696699
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "year"
classes[].fields[].type "integer"
classes[].fields[].name "foo1"
diff --git a/config-model/src/test/derived/ranktypes/summary.cfg b/config-model/src/test/derived/ranktypes/summary.cfg
index 9644eb878ea..49b668e9edf 100644
--- a/config-model/src/test/derived/ranktypes/summary.cfg
+++ b/config-model/src/test/derived/ranktypes/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1567556360
classes[].id 1567556360
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "title"
classes[].fields[].type "longstring"
classes[].fields[].name "descr"
diff --git a/config-model/src/test/derived/reference_fields/summary.cfg b/config-model/src/test/derived/reference_fields/summary.cfg
index 49037473d88..410bccff7b3 100644
--- a/config-model/src/test/derived/reference_fields/summary.cfg
+++ b/config-model/src/test/derived/reference_fields/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1987541865
classes[].id 1987541865
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "campaign_ref"
classes[].fields[].type "longstring"
classes[].fields[].name "rankfeatures"
@@ -11,6 +12,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 428144659
classes[].name "explicit_summary"
+classes[].omitsummaryfeatures false
classes[].fields[].name "yet_another_ref"
classes[].fields[].type "longstring"
classes[].fields[].name "rankfeatures"
@@ -19,6 +21,7 @@ classes[].fields[].name "summaryfeatures"
classes[].fields[].type "featuredata"
classes[].id 1274088866
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "rankfeatures"
classes[].fields[].type "featuredata"
classes[].fields[].name "summaryfeatures"
diff --git a/config-model/src/test/derived/streamingstruct/summary.cfg b/config-model/src/test/derived/streamingstruct/summary.cfg
index 28f19e6fe25..655499a88be 100644
--- a/config-model/src/test/derived/streamingstruct/summary.cfg
+++ b/config-model/src/test/derived/streamingstruct/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 569269436
classes[].id 569269436
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "coupleof"
classes[].fields[].type "longstring"
classes[].fields[].name "anothersummaryfield"
@@ -41,6 +42,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 109252281
classes[].name "summ"
+classes[].omitsummaryfeatures false
classes[].fields[].name "snippet"
classes[].fields[].type "longstring"
classes[].fields[].name "snippet2"
diff --git a/config-model/src/test/derived/streamingstructdefault/summary.cfg b/config-model/src/test/derived/streamingstructdefault/summary.cfg
index caa44931c6a..a52b34925dc 100644
--- a/config-model/src/test/derived/streamingstructdefault/summary.cfg
+++ b/config-model/src/test/derived/streamingstructdefault/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 718801936
classes[].id 718801936
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "sum1"
classes[].fields[].type "longstring"
classes[].fields[].name "f1"
diff --git a/config-model/src/test/derived/tensor/summary.cfg b/config-model/src/test/derived/tensor/summary.cfg
index fb32eacbb4c..355cba0e561 100644
--- a/config-model/src/test/derived/tensor/summary.cfg
+++ b/config-model/src/test/derived/tensor/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 898020074
classes[].id 898020074
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "f1"
classes[].fields[].type "tensor"
classes[].fields[].name "f3"
@@ -17,6 +18,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 1476352352
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "f2"
classes[].fields[].type "tensor"
classes[].fields[].name "f3"
diff --git a/config-model/src/test/derived/types/summary.cfg b/config-model/src/test/derived/types/summary.cfg
index e5485a24c8c..e0e67a5669d 100644
--- a/config-model/src/test/derived/types/summary.cfg
+++ b/config-model/src/test/derived/types/summary.cfg
@@ -1,6 +1,7 @@
defaultsummaryid 1131946680
classes[].id 1131946680
classes[].name "default"
+classes[].omitsummaryfeatures false
classes[].fields[].name "abyte"
classes[].fields[].type "byte"
classes[].fields[].name "along"
@@ -25,6 +26,7 @@ classes[].fields[].name "documentid"
classes[].fields[].type "longstring"
classes[].id 1027812395
classes[].name "attributeprefetch"
+classes[].omitsummaryfeatures false
classes[].fields[].name "other"
classes[].fields[].type "int64"
classes[].fields[].name "abyte"
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java
index bfc738a4f87..ef7da4f23d0 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java
@@ -6,6 +6,7 @@ import com.yahoo.searchdefinition.Search;
import com.yahoo.searchdefinition.SearchBuilder;
import com.yahoo.searchdefinition.SchemaTestCase;
import com.yahoo.searchdefinition.parser.ParseException;
+import com.yahoo.vespa.config.search.SummaryConfig;
import org.junit.Test;
import java.io.IOException;
@@ -14,6 +15,7 @@ import java.util.Iterator;
import static com.yahoo.config.model.test.TestUtil.joinLines;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
/**
* Tests summary extraction
@@ -151,4 +153,30 @@ public class SummaryTestCase extends SchemaTestCase {
return builder.getSearch("ad");
}
+ @Test
+ public void omit_summary_features_specified_for_document_summary() throws ParseException {
+ String sd = joinLines(
+ "schema test {",
+ " document test {",
+ " field foo type string { indexing: summary }",
+ " }",
+ " document-summary bar {",
+ " summary foo type string {}",
+ " omit-summary-features",
+ " }",
+ " document-summary baz {",
+ " summary foo type string {}",
+ " }",
+ "}");
+ var search = SearchBuilder.createFromString(sd).getSearch();
+ assertOmitSummaryFeatures(true, search, "bar");
+ assertOmitSummaryFeatures(false, search, "baz");
+ }
+
+ private void assertOmitSummaryFeatures(boolean expected, Search search, String summaryName) {
+ var summary = new SummaryClass(search, search.getSummary(summaryName), new BaseDeployLogger());
+ var config = new SummaryConfig.Classes(summary.getSummaryClassConfig());
+ assertEquals(expected, config.omitsummaryfeatures());
+ }
+
}