summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2018-11-01 09:48:56 +0000
committergjoranv <gv@oath.com>2019-01-21 15:09:25 +0100
commit953684a791ac6bb080ecd1c16e77fb57c3fcb85a (patch)
tree41890aa409898a1ff32cdfdabfb25b812964642d /config-model
parentdf35b45ca1fac714c7255772e03ba218efa8ecd8 (diff)
Revert "remove "header" and "body" keywords"
This reverts commit e24c1df653d6470089f05786d74e729bb8f82990.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/BodyOperation.java14
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/HeaderOperation.java14
-rw-r--r--config-model/src/main/javacc/SDParser.jj68
-rw-r--r--config-model/src/test/cfg/admin/metricconfig/searchdefinitions/music.sd4
-rw-r--r--config-model/src/test/cfg/application/app1/searchdefinitions/music.sd6
-rw-r--r--config-model/src/test/cfg/application/app_genericservices/searchdefinitions/music.sd6
-rw-r--r--config-model/src/test/cfg/routing/content_two_clusters/searchdefinitions/mobile.sd4
-rw-r--r--config-model/src/test/cfg/search/data/travel/searchdefinitions/TTEdge.sd1
-rw-r--r--config-model/src/test/cfg/search/data/travel/searchdefinitions/TTPOI.sd4
-rw-r--r--config-model/src/test/cfg/search/data/v2/inherited_rankprofiles/searchdefinitions/music.sd4
-rw-r--r--config-model/src/test/cfg/storage/app_index_higher_than_num_nodes/searchdefinitions/music.sd4
-rw-r--r--config-model/src/test/cfg/storage/clustercontroller_advanced/searchdefinitions/music.sd4
-rw-r--r--config-model/src/test/configmodel/types/documentmanager.cfg216
-rw-r--r--config-model/src/test/configmodel/types/documenttypes.cfg334
-rw-r--r--config-model/src/test/configmodel/types/documenttypes_with_doc_field.cfg2
-rw-r--r--config-model/src/test/configmodel/types/types.sd14
-rw-r--r--config-model/src/test/derived/inheritstruct/child.sd1
-rw-r--r--config-model/src/test/derived/mail/mail.sd7
-rw-r--r--config-model/src/test/derived/music3/music3.sd12
-rw-r--r--config-model/src/test/derived/streamingjuniper/streamingjuniper.sd2
-rw-r--r--config-model/src/test/derived/streamingstructdefault/streamingstructdefault.sd2
-rw-r--r--config-model/src/test/derived/twostreamingstructs/whatever.sd1
-rw-r--r--config-model/src/test/derived/types/types.sd15
-rw-r--r--config-model/src/test/examples/rankpropvars.sd7
-rw-r--r--config-model/src/test/examples/simple.sd2
-rw-r--r--config-model/src/test/examples/structoutsideofdocument.sd1
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java2
27 files changed, 459 insertions, 292 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/BodyOperation.java b/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/BodyOperation.java
new file mode 100644
index 00000000000..7ea11873a12
--- /dev/null
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/BodyOperation.java
@@ -0,0 +1,14 @@
+// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.searchdefinition.fieldoperation;
+
+import com.yahoo.searchdefinition.document.SDField;
+
+/**
+ * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ */
+public class BodyOperation implements FieldOperation {
+ public void apply(SDField field) {
+ field.setHeader(false);
+ field.setHeaderOrBodyDefined(true);
+ }
+}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/HeaderOperation.java b/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/HeaderOperation.java
new file mode 100644
index 00000000000..22d85f89105
--- /dev/null
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/fieldoperation/HeaderOperation.java
@@ -0,0 +1,14 @@
+// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.searchdefinition.fieldoperation;
+
+import com.yahoo.searchdefinition.document.SDField;
+
+/**
+ * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ */
+public class HeaderOperation implements FieldOperation {
+ public void apply(SDField field) {
+ field.setHeader(true);
+ field.setHeaderOrBodyDefined(true);
+ }
+}
diff --git a/config-model/src/main/javacc/SDParser.jj b/config-model/src/main/javacc/SDParser.jj
index 966ef46f6ac..19c410b4b98 100644
--- a/config-model/src/main/javacc/SDParser.jj
+++ b/config-model/src/main/javacc/SDParser.jj
@@ -265,6 +265,8 @@ TOKEN :
| < STEMMING: "stemming" >
| < NORMALIZING: "normalizing" >
| < BOLDING: "bolding" >
+| < BODY: "body" >
+| < HEADER: "header" >
| < NONE: "none" >
| < ON: "on" >
| < OFF: "off" >
@@ -536,13 +538,35 @@ Object documentBody(SDDocumentType document, Search search) :
{
( annotation(search, document)
| compression(document, null)
+ | headercfg(document)
+ | bodycfg(document)
| structInside(document, search)
| field(document, search) )
{ return null; }
}
/**
- * Consumes a compression block.
+ * Consumes a document head block.
+ *
+ * @param document The document type to modify.
+ */
+void headercfg(SDDocumentType document) : { }
+{
+ <HEADER> lbrace() [compression(document, "header") (<NL>)*] <RBRACE>
+}
+
+/**
+ * Consumes a document body block.
+ *
+ * @param document The document type to modify.
+ */
+void bodycfg(SDDocumentType document) : { }
+{
+ <BODY> lbrace() [compression(document, "body") (<NL>)*] <RBRACE>
+}
+
+/**
+ * Consumes a compression block. This can be set in both document header and -body block.
*
* @param document The document type to modify.
* @param name The name of the document block to modify.
@@ -554,8 +578,12 @@ void compression(SDDocumentType document, String name) :
{
<COMPRESSION> lbrace() (cfg = compressionItem(cfg) (<NL>)*)* <RBRACE>
{
- document.getDocumentType().contentStruct().setCompressionConfig(cfg);
- document.getDocumentType().getBodyType().setCompressionConfig(cfg);
+ if (name == null || name.equals("header")) {
+ document.getDocumentType().contentStruct().setCompressionConfig(cfg);
+ }
+ if (name == null || name.equals("body")) {
+ document.getDocumentType().getBodyType().setCompressionConfig(cfg);
+ }
}
}
@@ -938,8 +966,10 @@ String fieldBody(SDField field, Search search, SDDocumentType document) : { }
{
( alias(field) |
attribute(field) |
+ body(field) |
bolding(field) |
fieldStemming(field) |
+ header(field) |
id(field, document) |
summaryInField(field) |
index(search, field) |
@@ -1466,6 +1496,36 @@ void bolding(FieldOperationContainer field) :
}
}
+/**
+ * This rule consumes a body statement of a field element.
+ *
+ * @param field The field to modify.
+ */
+void body(SDField field) : { }
+{
+ <BODY>
+ {
+ deployLogger.log(Level.WARNING, field + ": 'header/body' is deprecated and has no effect.");
+ field.setHeader(false);
+ field.setHeaderOrBodyDefined(true);
+ }
+}
+
+/**
+ * This rule consumes a header statement of a field element.
+ *
+ * @param field The field to modify.
+ */
+void header(SDField field) : { }
+{
+ <HEADER>
+ {
+ deployLogger.log(Level.WARNING, field + ": 'header/body' is deprecated and has no effect.");
+ field.setHeader(true);
+ field.setHeaderOrBodyDefined(true);
+ }
+}
+
void queryCommand(FieldOperationContainer container) :
{
String command;
@@ -2421,6 +2481,7 @@ String identifier() : { }
| <AS>
| <ASCENDING>
| <ATTRIBUTE>
+ | <BODY>
| <BOLDING>
| <COMPRESSION>
| <COMPRESSIONLEVEL>
@@ -2450,6 +2511,7 @@ String identifier() : { }
| <FULL>
| <FUNCTION>
| <GRAM>
+ | <HEADER>
| <HUGE>
| <ID>
| <IDENTICAL>
diff --git a/config-model/src/test/cfg/admin/metricconfig/searchdefinitions/music.sd b/config-model/src/test/cfg/admin/metricconfig/searchdefinitions/music.sd
index 5baa006da5d..f7b182f66ea 100644
--- a/config-model/src/test/cfg/admin/metricconfig/searchdefinitions/music.sd
+++ b/config-model/src/test/cfg/admin/metricconfig/searchdefinitions/music.sd
@@ -3,9 +3,13 @@ search music {
document music {
field f1 type string {
indexing: summary | index
+ # index-to: f1, all
+ header
}
field f2 type string {
indexing: summary | index
+ # index-to: f2, all
+ body
}
}
}
diff --git a/config-model/src/test/cfg/application/app1/searchdefinitions/music.sd b/config-model/src/test/cfg/application/app1/searchdefinitions/music.sd
index bdf4c060cf7..dda729d6a35 100644
--- a/config-model/src/test/cfg/application/app1/searchdefinitions/music.sd
+++ b/config-model/src/test/cfg/application/app1/searchdefinitions/music.sd
@@ -9,28 +9,34 @@ search music {
indexing: summary | index # How this field should be indexed
# index-to: title, default # Create two indexes
rank-type: about # Type of ranking settings to apply
+ header
}
field artist type string {
indexing: summary | attribute | index
# index-to: artist, default
rank-type:about
+ header
}
field year type int {
indexing: summary | attribute
+ header
}
# Increase rank score of popular documents regardless of query
field popularity type int {
indexing: summary | attribute
+ body
}
field url type uri {
indexing: summary | index
+ header
}
field cover type raw {
+ body
}
}
diff --git a/config-model/src/test/cfg/application/app_genericservices/searchdefinitions/music.sd b/config-model/src/test/cfg/application/app_genericservices/searchdefinitions/music.sd
index bdf4c060cf7..dda729d6a35 100644
--- a/config-model/src/test/cfg/application/app_genericservices/searchdefinitions/music.sd
+++ b/config-model/src/test/cfg/application/app_genericservices/searchdefinitions/music.sd
@@ -9,28 +9,34 @@ search music {
indexing: summary | index # How this field should be indexed
# index-to: title, default # Create two indexes
rank-type: about # Type of ranking settings to apply
+ header
}
field artist type string {
indexing: summary | attribute | index
# index-to: artist, default
rank-type:about
+ header
}
field year type int {
indexing: summary | attribute
+ header
}
# Increase rank score of popular documents regardless of query
field popularity type int {
indexing: summary | attribute
+ body
}
field url type uri {
indexing: summary | index
+ header
}
field cover type raw {
+ body
}
}
diff --git a/config-model/src/test/cfg/routing/content_two_clusters/searchdefinitions/mobile.sd b/config-model/src/test/cfg/routing/content_two_clusters/searchdefinitions/mobile.sd
index d87d582223f..feae86fe966 100644
--- a/config-model/src/test/cfg/routing/content_two_clusters/searchdefinitions/mobile.sd
+++ b/config-model/src/test/cfg/routing/content_two_clusters/searchdefinitions/mobile.sd
@@ -3,9 +3,13 @@ search mobile {
document mobile {
field f1 type string {
indexing: summary | index
+ # index-to: f1, all
+ header
}
field f2 type string {
indexing: summary | index
+ # index-to: f2, all
+ body
}
}
}
diff --git a/config-model/src/test/cfg/search/data/travel/searchdefinitions/TTEdge.sd b/config-model/src/test/cfg/search/data/travel/searchdefinitions/TTEdge.sd
index e6707345235..8cc6d05584c 100644
--- a/config-model/src/test/cfg/search/data/travel/searchdefinitions/TTEdge.sd
+++ b/config-model/src/test/cfg/search/data/travel/searchdefinitions/TTEdge.sd
@@ -4,6 +4,7 @@ document TTEdge {
# This field will contain a colon separate map for travel times per transport mode
field TransportMode type array<string> {
indexing: summary | index
+ header
}
}
diff --git a/config-model/src/test/cfg/search/data/travel/searchdefinitions/TTPOI.sd b/config-model/src/test/cfg/search/data/travel/searchdefinitions/TTPOI.sd
index c0032474b89..0cb0596b31c 100644
--- a/config-model/src/test/cfg/search/data/travel/searchdefinitions/TTPOI.sd
+++ b/config-model/src/test/cfg/search/data/travel/searchdefinitions/TTPOI.sd
@@ -4,11 +4,15 @@ document TTPOI {
# categories associated with the POI
field Categories type array<string> {
indexing: summary | index
+ # index-to: Categories
+ header
}
# sub catagories associated with the POI
field SubCategories type array<string> {
indexing: summary | index
+ # index-to: SubCategories
+ header
}
}
diff --git a/config-model/src/test/cfg/search/data/v2/inherited_rankprofiles/searchdefinitions/music.sd b/config-model/src/test/cfg/search/data/v2/inherited_rankprofiles/searchdefinitions/music.sd
index 6e26531849e..0d3859b65a0 100644
--- a/config-model/src/test/cfg/search/data/v2/inherited_rankprofiles/searchdefinitions/music.sd
+++ b/config-model/src/test/cfg/search/data/v2/inherited_rankprofiles/searchdefinitions/music.sd
@@ -3,9 +3,13 @@ search music {
document music {
field f1 type string {
indexing: summary | index
+ # index-to: f1, all
+ header
}
field f2 type string {
indexing: summary | index
+ # index-to: f2, all
+ body
}
}
}
diff --git a/config-model/src/test/cfg/storage/app_index_higher_than_num_nodes/searchdefinitions/music.sd b/config-model/src/test/cfg/storage/app_index_higher_than_num_nodes/searchdefinitions/music.sd
index 6e26531849e..0d3859b65a0 100644
--- a/config-model/src/test/cfg/storage/app_index_higher_than_num_nodes/searchdefinitions/music.sd
+++ b/config-model/src/test/cfg/storage/app_index_higher_than_num_nodes/searchdefinitions/music.sd
@@ -3,9 +3,13 @@ search music {
document music {
field f1 type string {
indexing: summary | index
+ # index-to: f1, all
+ header
}
field f2 type string {
indexing: summary | index
+ # index-to: f2, all
+ body
}
}
}
diff --git a/config-model/src/test/cfg/storage/clustercontroller_advanced/searchdefinitions/music.sd b/config-model/src/test/cfg/storage/clustercontroller_advanced/searchdefinitions/music.sd
index 6e26531849e..0d3859b65a0 100644
--- a/config-model/src/test/cfg/storage/clustercontroller_advanced/searchdefinitions/music.sd
+++ b/config-model/src/test/cfg/storage/clustercontroller_advanced/searchdefinitions/music.sd
@@ -3,9 +3,13 @@ search music {
document music {
field f1 type string {
indexing: summary | index
+ # index-to: f1, all
+ header
}
field f2 type string {
indexing: summary | index
+ # index-to: f2, all
+ body
}
}
}
diff --git a/config-model/src/test/configmodel/types/documentmanager.cfg b/config-model/src/test/configmodel/types/documentmanager.cfg
index a6a56bf65c1..aaaebccecfd 100644
--- a/config-model/src/test/configmodel/types/documentmanager.cfg
+++ b/config-model/src/test/configmodel/types/documentmanager.cfg
@@ -110,116 +110,113 @@ datatype[19].id -794985308
datatype[19].arraytype[0].datatype 1707615575
datatype[20].id 69621385
datatype[20].arraytype[0].datatype 339965458
-datatype[21].id -372512406
+datatype[21].id 1901258752
datatype[21].maptype[0].keytype 0
-datatype[21].maptype[0].valtype 1707615575
-datatype[22].id 1416345047
-datatype[22].arraytype[0].datatype -372512406
-datatype[23].id 1901258752
+datatype[21].maptype[0].valtype -2092985853
+datatype[22].id 759956026
+datatype[22].arraytype[0].datatype -2092985853
+datatype[23].id -389833101
datatype[23].maptype[0].keytype 0
-datatype[23].maptype[0].valtype -2092985853
-datatype[24].id 759956026
-datatype[24].arraytype[0].datatype -2092985853
-datatype[25].id -389833101
+datatype[23].maptype[0].valtype 294108848
+datatype[24].id 1328581348
+datatype[24].structtype[0].name "types.header"
+datatype[24].structtype[0].version 0
+datatype[24].structtype[0].compresstype NONE
+datatype[24].structtype[0].compresslevel 0
+datatype[24].structtype[0].compressthreshold 95
+datatype[24].structtype[0].compressminsize 800
+datatype[24].structtype[0].field[0].name "abyte"
+datatype[24].structtype[0].field[0].datatype 16
+datatype[24].structtype[0].field[0].detailedtype ""
+datatype[24].structtype[0].field[1].name "along"
+datatype[24].structtype[0].field[1].datatype 4
+datatype[24].structtype[0].field[1].detailedtype ""
+datatype[24].structtype[0].field[2].name "arrayfield"
+datatype[24].structtype[0].field[2].datatype -1245117006
+datatype[24].structtype[0].field[2].detailedtype ""
+datatype[24].structtype[0].field[3].name "setfield"
+datatype[24].structtype[0].field[3].datatype 1328286588
+datatype[24].structtype[0].field[3].detailedtype ""
+datatype[24].structtype[0].field[4].name "pos"
+datatype[24].structtype[0].field[4].datatype 1381038251
+datatype[24].structtype[0].field[4].detailedtype ""
+datatype[24].structtype[0].field[5].name "setfield2"
+datatype[24].structtype[0].field[5].datatype 18
+datatype[24].structtype[0].field[5].detailedtype ""
+datatype[24].structtype[0].field[6].name "setfield3"
+datatype[24].structtype[0].field[6].datatype 2125328771
+datatype[24].structtype[0].field[6].detailedtype ""
+datatype[24].structtype[0].field[7].name "setfield4"
+datatype[24].structtype[0].field[7].datatype 2065577986
+datatype[24].structtype[0].field[7].detailedtype ""
+datatype[24].structtype[0].field[8].name "tagfield"
+datatype[24].structtype[0].field[8].datatype 18
+datatype[24].structtype[0].field[8].detailedtype ""
+datatype[24].structtype[0].field[9].name "structfield"
+datatype[24].structtype[0].field[9].datatype 109267174
+datatype[24].structtype[0].field[9].detailedtype ""
+datatype[24].structtype[0].field[10].name "structarrayfield"
+datatype[24].structtype[0].field[10].datatype -1244829667
+datatype[24].structtype[0].field[10].detailedtype ""
+datatype[24].structtype[0].field[11].name "stringmapfield"
+datatype[24].structtype[0].field[11].datatype 339965458
+datatype[24].structtype[0].field[11].detailedtype ""
+datatype[24].structtype[0].field[12].name "intmapfield"
+datatype[24].structtype[0].field[12].datatype -1584287606
+datatype[24].structtype[0].field[12].detailedtype ""
+datatype[24].structtype[0].field[13].name "floatmapfield"
+datatype[24].structtype[0].field[13].datatype 2125154557
+datatype[24].structtype[0].field[13].detailedtype ""
+datatype[24].structtype[0].field[14].name "longmapfield"
+datatype[24].structtype[0].field[14].datatype -1715531035
+datatype[24].structtype[0].field[14].detailedtype ""
+datatype[24].structtype[0].field[15].name "doublemapfield"
+datatype[24].structtype[0].field[15].datatype 2138385264
+datatype[24].structtype[0].field[15].detailedtype ""
+datatype[24].structtype[0].field[16].name "arraymapfield"
+datatype[24].structtype[0].field[16].datatype 435886609
+datatype[24].structtype[0].field[16].detailedtype ""
+datatype[24].structtype[0].field[17].name "arrarr"
+datatype[24].structtype[0].field[17].datatype -794985308
+datatype[24].structtype[0].field[17].detailedtype ""
+datatype[24].structtype[0].field[18].name "maparr"
+datatype[24].structtype[0].field[18].datatype 69621385
+datatype[24].structtype[0].field[18].detailedtype ""
+datatype[24].structtype[0].field[19].name "mystructfield"
+datatype[24].structtype[0].field[19].datatype -2092985853
+datatype[24].structtype[0].field[19].detailedtype ""
+datatype[24].structtype[0].field[20].name "mystructmap"
+datatype[24].structtype[0].field[20].datatype 1901258752
+datatype[24].structtype[0].field[20].detailedtype ""
+datatype[24].structtype[0].field[21].name "mystructarr"
+datatype[24].structtype[0].field[21].datatype 759956026
+datatype[24].structtype[0].field[21].detailedtype ""
+datatype[24].structtype[0].field[22].name "Folders"
+datatype[24].structtype[0].field[22].datatype -389833101
+datatype[24].structtype[0].field[22].detailedtype ""
+datatype[24].structtype[0].field[23].name "juletre"
+datatype[24].structtype[0].field[23].datatype 4
+datatype[24].structtype[0].field[23].detailedtype ""
+datatype[24].structtype[0].field[24].name "album0"
+datatype[24].structtype[0].field[24].datatype 18
+datatype[24].structtype[0].field[24].detailedtype ""
+datatype[24].structtype[0].field[25].name "album1"
+datatype[24].structtype[0].field[25].datatype 18
+datatype[24].structtype[0].field[25].detailedtype ""
+datatype[24].structtype[0].field[26].name "other"
+datatype[24].structtype[0].field[26].datatype 4
+datatype[24].structtype[0].field[26].detailedtype ""
+datatype[24].structtype[0].field[27].name "rankfeatures"
+datatype[24].structtype[0].field[27].datatype 2
+datatype[24].structtype[0].field[27].detailedtype ""
+datatype[24].structtype[0].field[28].name "summaryfeatures"
+datatype[24].structtype[0].field[28].datatype 2
+datatype[24].structtype[0].field[28].detailedtype ""
+datatype[25].id -372512406
datatype[25].maptype[0].keytype 0
-datatype[25].maptype[0].valtype 294108848
-datatype[26].id 1328581348
-datatype[26].structtype[0].name "types.header"
-datatype[26].structtype[0].version 0
-datatype[26].structtype[0].compresstype NONE
-datatype[26].structtype[0].compresslevel 0
-datatype[26].structtype[0].compressthreshold 95
-datatype[26].structtype[0].compressminsize 800
-datatype[26].structtype[0].field[0].name "abyte"
-datatype[26].structtype[0].field[0].datatype 16
-datatype[26].structtype[0].field[0].detailedtype ""
-datatype[26].structtype[0].field[1].name "along"
-datatype[26].structtype[0].field[1].datatype 4
-datatype[26].structtype[0].field[1].detailedtype ""
-datatype[26].structtype[0].field[2].name "arrayfield"
-datatype[26].structtype[0].field[2].datatype -1245117006
-datatype[26].structtype[0].field[2].detailedtype ""
-datatype[26].structtype[0].field[3].name "setfield"
-datatype[26].structtype[0].field[3].datatype 1328286588
-datatype[26].structtype[0].field[3].detailedtype ""
-datatype[26].structtype[0].field[4].name "pos"
-datatype[26].structtype[0].field[4].datatype 1381038251
-datatype[26].structtype[0].field[4].detailedtype ""
-datatype[26].structtype[0].field[5].name "setfield2"
-datatype[26].structtype[0].field[5].datatype 18
-datatype[26].structtype[0].field[5].detailedtype ""
-datatype[26].structtype[0].field[6].name "setfield3"
-datatype[26].structtype[0].field[6].datatype 2125328771
-datatype[26].structtype[0].field[6].detailedtype ""
-datatype[26].structtype[0].field[7].name "setfield4"
-datatype[26].structtype[0].field[7].datatype 2065577986
-datatype[26].structtype[0].field[7].detailedtype ""
-datatype[26].structtype[0].field[8].name "tagfield"
-datatype[26].structtype[0].field[8].datatype 18
-datatype[26].structtype[0].field[8].detailedtype ""
-datatype[26].structtype[0].field[9].name "structfield"
-datatype[26].structtype[0].field[9].datatype 109267174
-datatype[26].structtype[0].field[9].detailedtype ""
-datatype[26].structtype[0].field[10].name "structarrayfield"
-datatype[26].structtype[0].field[10].datatype -1244829667
-datatype[26].structtype[0].field[10].detailedtype ""
-datatype[26].structtype[0].field[11].name "stringmapfield"
-datatype[26].structtype[0].field[11].datatype 339965458
-datatype[26].structtype[0].field[11].detailedtype ""
-datatype[26].structtype[0].field[12].name "intmapfield"
-datatype[26].structtype[0].field[12].datatype -1584287606
-datatype[26].structtype[0].field[12].detailedtype ""
-datatype[26].structtype[0].field[13].name "floatmapfield"
-datatype[26].structtype[0].field[13].datatype 2125154557
-datatype[26].structtype[0].field[13].detailedtype ""
-datatype[26].structtype[0].field[14].name "longmapfield"
-datatype[26].structtype[0].field[14].datatype -1715531035
-datatype[26].structtype[0].field[14].detailedtype ""
-datatype[26].structtype[0].field[15].name "doublemapfield"
-datatype[26].structtype[0].field[15].datatype 2138385264
-datatype[26].structtype[0].field[15].detailedtype ""
-datatype[26].structtype[0].field[16].name "arraymapfield"
-datatype[26].structtype[0].field[16].datatype 435886609
-datatype[26].structtype[0].field[16].detailedtype ""
-datatype[26].structtype[0].field[17].name "arrarr"
-datatype[26].structtype[0].field[17].datatype -794985308
-datatype[26].structtype[0].field[17].detailedtype ""
-datatype[26].structtype[0].field[18].name "maparr"
-datatype[26].structtype[0].field[18].datatype 69621385
-datatype[26].structtype[0].field[18].detailedtype ""
-datatype[26].structtype[0].field[19].name "complexarray"
-datatype[26].structtype[0].field[19].datatype 1416345047
-datatype[26].structtype[0].field[19].detailedtype ""
-datatype[26].structtype[0].field[20].name "mystructfield"
-datatype[26].structtype[0].field[20].datatype -2092985853
-datatype[26].structtype[0].field[20].detailedtype ""
-datatype[26].structtype[0].field[21].name "mystructmap"
-datatype[26].structtype[0].field[21].datatype 1901258752
-datatype[26].structtype[0].field[21].detailedtype ""
-datatype[26].structtype[0].field[22].name "mystructarr"
-datatype[26].structtype[0].field[22].datatype 759956026
-datatype[26].structtype[0].field[22].detailedtype ""
-datatype[26].structtype[0].field[23].name "Folders"
-datatype[26].structtype[0].field[23].datatype -389833101
-datatype[26].structtype[0].field[23].detailedtype ""
-datatype[26].structtype[0].field[24].name "juletre"
-datatype[26].structtype[0].field[24].datatype 4
-datatype[26].structtype[0].field[24].detailedtype ""
-datatype[26].structtype[0].field[25].name "album0"
-datatype[26].structtype[0].field[25].datatype 18
-datatype[26].structtype[0].field[25].detailedtype ""
-datatype[26].structtype[0].field[26].name "album1"
-datatype[26].structtype[0].field[26].datatype 18
-datatype[26].structtype[0].field[26].detailedtype ""
-datatype[26].structtype[0].field[27].name "other"
-datatype[26].structtype[0].field[27].datatype 4
-datatype[26].structtype[0].field[27].detailedtype ""
-datatype[26].structtype[0].field[28].name "rankfeatures"
-datatype[26].structtype[0].field[28].datatype 2
-datatype[26].structtype[0].field[28].detailedtype ""
-datatype[26].structtype[0].field[29].name "summaryfeatures"
-datatype[26].structtype[0].field[29].datatype 2
-datatype[26].structtype[0].field[29].detailedtype ""
+datatype[25].maptype[0].valtype 1707615575
+datatype[26].id 1416345047
+datatype[26].arraytype[0].datatype -372512406
datatype[27].id 348447225
datatype[27].structtype[0].name "types.body"
datatype[27].structtype[0].version 0
@@ -227,6 +224,9 @@ datatype[27].structtype[0].compresstype NONE
datatype[27].structtype[0].compresslevel 0
datatype[27].structtype[0].compressthreshold 95
datatype[27].structtype[0].compressminsize 800
+datatype[27].structtype[0].field[0].name "complexarray"
+datatype[27].structtype[0].field[0].datatype 1416345047
+datatype[27].structtype[0].field[0].detailedtype ""
datatype[28].id -853072901
datatype[28].documenttype[0].name "types"
datatype[28].documenttype[0].version 0
@@ -260,4 +260,4 @@ datatype[28].documenttype[0].fieldsets{[document]}.fields[22] "setfield4"
datatype[28].documenttype[0].fieldsets{[document]}.fields[23] "stringmapfield"
datatype[28].documenttype[0].fieldsets{[document]}.fields[24] "structarrayfield"
datatype[28].documenttype[0].fieldsets{[document]}.fields[25] "structfield"
-datatype[28].documenttype[0].fieldsets{[document]}.fields[26] "tagfield"
+datatype[28].documenttype[0].fieldsets{[document]}.fields[26] "tagfield" \ No newline at end of file
diff --git a/config-model/src/test/configmodel/types/documenttypes.cfg b/config-model/src/test/configmodel/types/documenttypes.cfg
index 7ff795bc33c..97785618e8e 100644
--- a/config-model/src/test/configmodel/types/documenttypes.cfg
+++ b/config-model/src/test/configmodel/types/documenttypes.cfg
@@ -355,11 +355,11 @@ documenttype[0].datatype[19].sstruct.compression.type NONE
documenttype[0].datatype[19].sstruct.compression.level 0
documenttype[0].datatype[19].sstruct.compression.threshold 95
documenttype[0].datatype[19].sstruct.compression.minsize 200
-documenttype[0].datatype[20].id -372512406
+documenttype[0].datatype[20].id 1901258752
documenttype[0].datatype[20].type MAP
documenttype[0].datatype[20].array.element.id 0
documenttype[0].datatype[20].map.key.id 0
-documenttype[0].datatype[20].map.value.id 1707615575
+documenttype[0].datatype[20].map.value.id -2092985853
documenttype[0].datatype[20].wset.key.id 0
documenttype[0].datatype[20].wset.createifnonexistent false
documenttype[0].datatype[20].wset.removeifzero false
@@ -370,9 +370,9 @@ documenttype[0].datatype[20].sstruct.compression.type NONE
documenttype[0].datatype[20].sstruct.compression.level 0
documenttype[0].datatype[20].sstruct.compression.threshold 95
documenttype[0].datatype[20].sstruct.compression.minsize 200
-documenttype[0].datatype[21].id 1416345047
+documenttype[0].datatype[21].id 759956026
documenttype[0].datatype[21].type ARRAY
-documenttype[0].datatype[21].array.element.id -372512406
+documenttype[0].datatype[21].array.element.id -2092985853
documenttype[0].datatype[21].map.key.id 0
documenttype[0].datatype[21].map.value.id 0
documenttype[0].datatype[21].wset.key.id 0
@@ -385,11 +385,11 @@ documenttype[0].datatype[21].sstruct.compression.type NONE
documenttype[0].datatype[21].sstruct.compression.level 0
documenttype[0].datatype[21].sstruct.compression.threshold 95
documenttype[0].datatype[21].sstruct.compression.minsize 200
-documenttype[0].datatype[22].id 1901258752
+documenttype[0].datatype[22].id -389833101
documenttype[0].datatype[22].type MAP
documenttype[0].datatype[22].array.element.id 0
documenttype[0].datatype[22].map.key.id 0
-documenttype[0].datatype[22].map.value.id -2092985853
+documenttype[0].datatype[22].map.value.id 294108848
documenttype[0].datatype[22].wset.key.id 0
documenttype[0].datatype[22].wset.createifnonexistent false
documenttype[0].datatype[22].wset.removeifzero false
@@ -400,26 +400,171 @@ documenttype[0].datatype[22].sstruct.compression.type NONE
documenttype[0].datatype[22].sstruct.compression.level 0
documenttype[0].datatype[22].sstruct.compression.threshold 95
documenttype[0].datatype[22].sstruct.compression.minsize 200
-documenttype[0].datatype[23].id 759956026
-documenttype[0].datatype[23].type ARRAY
-documenttype[0].datatype[23].array.element.id -2092985853
+documenttype[0].datatype[23].id 1328581348
+documenttype[0].datatype[23].type STRUCT
+documenttype[0].datatype[23].array.element.id 0
documenttype[0].datatype[23].map.key.id 0
documenttype[0].datatype[23].map.value.id 0
documenttype[0].datatype[23].wset.key.id 0
documenttype[0].datatype[23].wset.createifnonexistent false
documenttype[0].datatype[23].wset.removeifzero false
documenttype[0].datatype[23].annotationref.annotation.id 0
-documenttype[0].datatype[23].sstruct.name ""
+documenttype[0].datatype[23].sstruct.name "types.header"
documenttype[0].datatype[23].sstruct.version 0
documenttype[0].datatype[23].sstruct.compression.type NONE
documenttype[0].datatype[23].sstruct.compression.level 0
documenttype[0].datatype[23].sstruct.compression.threshold 95
documenttype[0].datatype[23].sstruct.compression.minsize 200
-documenttype[0].datatype[24].id -389833101
+documenttype[0].datatype[23].sstruct.field[0].name "abyte"
+documenttype[0].datatype[23].sstruct.field[0].id 110138156
+documenttype[0].datatype[23].sstruct.field[0].id_v6 1369099343
+documenttype[0].datatype[23].sstruct.field[0].datatype 16
+documenttype[0].datatype[23].sstruct.field[0].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[1].name "along"
+documenttype[0].datatype[23].sstruct.field[1].id 1206464520
+documenttype[0].datatype[23].sstruct.field[1].id_v6 871280609
+documenttype[0].datatype[23].sstruct.field[1].datatype 4
+documenttype[0].datatype[23].sstruct.field[1].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[2].name "arrayfield"
+documenttype[0].datatype[23].sstruct.field[2].id 965790107
+documenttype[0].datatype[23].sstruct.field[2].id_v6 1010955705
+documenttype[0].datatype[23].sstruct.field[2].datatype -1245117006
+documenttype[0].datatype[23].sstruct.field[2].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[3].name "setfield"
+documenttype[0].datatype[23].sstruct.field[3].id 761581914
+documenttype[0].datatype[23].sstruct.field[3].id_v6 1762943268
+documenttype[0].datatype[23].sstruct.field[3].datatype 1328286588
+documenttype[0].datatype[23].sstruct.field[3].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[4].name "pos"
+documenttype[0].datatype[23].sstruct.field[4].id 1041567475
+documenttype[0].datatype[23].sstruct.field[4].id_v6 26353693
+documenttype[0].datatype[23].sstruct.field[4].datatype 1381038251
+documenttype[0].datatype[23].sstruct.field[4].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[5].name "setfield2"
+documenttype[0].datatype[23].sstruct.field[5].id 1066659198
+documenttype[0].datatype[23].sstruct.field[5].id_v6 813038565
+documenttype[0].datatype[23].sstruct.field[5].datatype 18
+documenttype[0].datatype[23].sstruct.field[5].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[6].name "setfield3"
+documenttype[0].datatype[23].sstruct.field[6].id 1180155772
+documenttype[0].datatype[23].sstruct.field[6].id_v6 1697232199
+documenttype[0].datatype[23].sstruct.field[6].datatype 2125328771
+documenttype[0].datatype[23].sstruct.field[6].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[7].name "setfield4"
+documenttype[0].datatype[23].sstruct.field[7].id 1254131631
+documenttype[0].datatype[23].sstruct.field[7].id_v6 119755202
+documenttype[0].datatype[23].sstruct.field[7].datatype 2065577986
+documenttype[0].datatype[23].sstruct.field[7].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[8].name "tagfield"
+documenttype[0].datatype[23].sstruct.field[8].id 1653562069
+documenttype[0].datatype[23].sstruct.field[8].id_v6 938523246
+documenttype[0].datatype[23].sstruct.field[8].datatype 18
+documenttype[0].datatype[23].sstruct.field[8].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[9].name "structfield"
+documenttype[0].datatype[23].sstruct.field[9].id 486207386
+documenttype[0].datatype[23].sstruct.field[9].id_v6 418303145
+documenttype[0].datatype[23].sstruct.field[9].datatype 109267174
+documenttype[0].datatype[23].sstruct.field[9].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[10].name "structarrayfield"
+documenttype[0].datatype[23].sstruct.field[10].id 335048518
+documenttype[0].datatype[23].sstruct.field[10].id_v6 607034174
+documenttype[0].datatype[23].sstruct.field[10].datatype -1244829667
+documenttype[0].datatype[23].sstruct.field[10].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[11].name "stringmapfield"
+documenttype[0].datatype[23].sstruct.field[11].id 117465687
+documenttype[0].datatype[23].sstruct.field[11].id_v6 1492788095
+documenttype[0].datatype[23].sstruct.field[11].datatype 339965458
+documenttype[0].datatype[23].sstruct.field[11].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[12].name "intmapfield"
+documenttype[0].datatype[23].sstruct.field[12].id 121004462
+documenttype[0].datatype[23].sstruct.field[12].id_v6 1642487905
+documenttype[0].datatype[23].sstruct.field[12].datatype -1584287606
+documenttype[0].datatype[23].sstruct.field[12].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[13].name "floatmapfield"
+documenttype[0].datatype[23].sstruct.field[13].id 1239120925
+documenttype[0].datatype[23].sstruct.field[13].id_v6 1609437589
+documenttype[0].datatype[23].sstruct.field[13].datatype 2125154557
+documenttype[0].datatype[23].sstruct.field[13].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[14].name "longmapfield"
+documenttype[0].datatype[23].sstruct.field[14].id 477718745
+documenttype[0].datatype[23].sstruct.field[14].id_v6 920341968
+documenttype[0].datatype[23].sstruct.field[14].datatype -1715531035
+documenttype[0].datatype[23].sstruct.field[14].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[15].name "doublemapfield"
+documenttype[0].datatype[23].sstruct.field[15].id 877047192
+documenttype[0].datatype[23].sstruct.field[15].id_v6 957317090
+documenttype[0].datatype[23].sstruct.field[15].datatype 2138385264
+documenttype[0].datatype[23].sstruct.field[15].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[16].name "arraymapfield"
+documenttype[0].datatype[23].sstruct.field[16].id 1670805928
+documenttype[0].datatype[23].sstruct.field[16].id_v6 1940354311
+documenttype[0].datatype[23].sstruct.field[16].datatype 435886609
+documenttype[0].datatype[23].sstruct.field[16].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[17].name "arrarr"
+documenttype[0].datatype[23].sstruct.field[17].id 1962567166
+documenttype[0].datatype[23].sstruct.field[17].id_v6 885141301
+documenttype[0].datatype[23].sstruct.field[17].datatype -794985308
+documenttype[0].datatype[23].sstruct.field[17].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[18].name "maparr"
+documenttype[0].datatype[23].sstruct.field[18].id 904375219
+documenttype[0].datatype[23].sstruct.field[18].id_v6 63700074
+documenttype[0].datatype[23].sstruct.field[18].datatype 69621385
+documenttype[0].datatype[23].sstruct.field[18].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[19].name "mystructfield"
+documenttype[0].datatype[23].sstruct.field[19].id 1348513378
+documenttype[0].datatype[23].sstruct.field[19].id_v6 2033170300
+documenttype[0].datatype[23].sstruct.field[19].datatype -2092985853
+documenttype[0].datatype[23].sstruct.field[19].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[20].name "mystructmap"
+documenttype[0].datatype[23].sstruct.field[20].id 1511423250
+documenttype[0].datatype[23].sstruct.field[20].id_v6 449602635
+documenttype[0].datatype[23].sstruct.field[20].datatype 1901258752
+documenttype[0].datatype[23].sstruct.field[20].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[21].name "mystructarr"
+documenttype[0].datatype[23].sstruct.field[21].id 595856991
+documenttype[0].datatype[23].sstruct.field[21].id_v6 764861972
+documenttype[0].datatype[23].sstruct.field[21].datatype 759956026
+documenttype[0].datatype[23].sstruct.field[21].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[22].name "Folders"
+documenttype[0].datatype[23].sstruct.field[22].id 34575524
+documenttype[0].datatype[23].sstruct.field[22].id_v6 280569744
+documenttype[0].datatype[23].sstruct.field[22].datatype -389833101
+documenttype[0].datatype[23].sstruct.field[22].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[23].name "juletre"
+documenttype[0].datatype[23].sstruct.field[23].id 1039981530
+documenttype[0].datatype[23].sstruct.field[23].id_v6 2073084146
+documenttype[0].datatype[23].sstruct.field[23].datatype 4
+documenttype[0].datatype[23].sstruct.field[23].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[24].name "album0"
+documenttype[0].datatype[23].sstruct.field[24].id 764312262
+documenttype[0].datatype[23].sstruct.field[24].id_v6 1409364160
+documenttype[0].datatype[23].sstruct.field[24].datatype 18
+documenttype[0].datatype[23].sstruct.field[24].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[25].name "album1"
+documenttype[0].datatype[23].sstruct.field[25].id 1967160809
+documenttype[0].datatype[23].sstruct.field[25].id_v6 1833811264
+documenttype[0].datatype[23].sstruct.field[25].datatype 18
+documenttype[0].datatype[23].sstruct.field[25].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[26].name "other"
+documenttype[0].datatype[23].sstruct.field[26].id 2443357
+documenttype[0].datatype[23].sstruct.field[26].id_v6 903806222
+documenttype[0].datatype[23].sstruct.field[26].datatype 4
+documenttype[0].datatype[23].sstruct.field[26].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[27].name "rankfeatures"
+documenttype[0].datatype[23].sstruct.field[27].id 1883197392
+documenttype[0].datatype[23].sstruct.field[27].id_v6 699950698
+documenttype[0].datatype[23].sstruct.field[27].datatype 2
+documenttype[0].datatype[23].sstruct.field[27].detailedtype ""
+documenttype[0].datatype[23].sstruct.field[28].name "summaryfeatures"
+documenttype[0].datatype[23].sstruct.field[28].id 1840337115
+documenttype[0].datatype[23].sstruct.field[28].id_v6 1981648971
+documenttype[0].datatype[23].sstruct.field[28].datatype 2
+documenttype[0].datatype[23].sstruct.field[28].detailedtype ""
+documenttype[0].datatype[24].id -372512406
documenttype[0].datatype[24].type MAP
documenttype[0].datatype[24].array.element.id 0
documenttype[0].datatype[24].map.key.id 0
-documenttype[0].datatype[24].map.value.id 294108848
+documenttype[0].datatype[24].map.value.id 1707615575
documenttype[0].datatype[24].wset.key.id 0
documenttype[0].datatype[24].wset.createifnonexistent false
documenttype[0].datatype[24].wset.removeifzero false
@@ -430,171 +575,21 @@ documenttype[0].datatype[24].sstruct.compression.type NONE
documenttype[0].datatype[24].sstruct.compression.level 0
documenttype[0].datatype[24].sstruct.compression.threshold 95
documenttype[0].datatype[24].sstruct.compression.minsize 200
-documenttype[0].datatype[25].id 1328581348
-documenttype[0].datatype[25].type STRUCT
-documenttype[0].datatype[25].array.element.id 0
+documenttype[0].datatype[25].id 1416345047
+documenttype[0].datatype[25].type ARRAY
+documenttype[0].datatype[25].array.element.id -372512406
documenttype[0].datatype[25].map.key.id 0
documenttype[0].datatype[25].map.value.id 0
documenttype[0].datatype[25].wset.key.id 0
documenttype[0].datatype[25].wset.createifnonexistent false
documenttype[0].datatype[25].wset.removeifzero false
documenttype[0].datatype[25].annotationref.annotation.id 0
-documenttype[0].datatype[25].sstruct.name "types.header"
+documenttype[0].datatype[25].sstruct.name ""
documenttype[0].datatype[25].sstruct.version 0
documenttype[0].datatype[25].sstruct.compression.type NONE
documenttype[0].datatype[25].sstruct.compression.level 0
documenttype[0].datatype[25].sstruct.compression.threshold 95
documenttype[0].datatype[25].sstruct.compression.minsize 200
-documenttype[0].datatype[25].sstruct.field[0].name "abyte"
-documenttype[0].datatype[25].sstruct.field[0].id 110138156
-documenttype[0].datatype[25].sstruct.field[0].id_v6 1369099343
-documenttype[0].datatype[25].sstruct.field[0].datatype 16
-documenttype[0].datatype[25].sstruct.field[0].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[1].name "along"
-documenttype[0].datatype[25].sstruct.field[1].id 1206464520
-documenttype[0].datatype[25].sstruct.field[1].id_v6 871280609
-documenttype[0].datatype[25].sstruct.field[1].datatype 4
-documenttype[0].datatype[25].sstruct.field[1].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[2].name "arrayfield"
-documenttype[0].datatype[25].sstruct.field[2].id 965790107
-documenttype[0].datatype[25].sstruct.field[2].id_v6 1010955705
-documenttype[0].datatype[25].sstruct.field[2].datatype -1245117006
-documenttype[0].datatype[25].sstruct.field[2].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[3].name "setfield"
-documenttype[0].datatype[25].sstruct.field[3].id 761581914
-documenttype[0].datatype[25].sstruct.field[3].id_v6 1762943268
-documenttype[0].datatype[25].sstruct.field[3].datatype 1328286588
-documenttype[0].datatype[25].sstruct.field[3].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[4].name "pos"
-documenttype[0].datatype[25].sstruct.field[4].id 1041567475
-documenttype[0].datatype[25].sstruct.field[4].id_v6 26353693
-documenttype[0].datatype[25].sstruct.field[4].datatype 1381038251
-documenttype[0].datatype[25].sstruct.field[4].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[5].name "setfield2"
-documenttype[0].datatype[25].sstruct.field[5].id 1066659198
-documenttype[0].datatype[25].sstruct.field[5].id_v6 813038565
-documenttype[0].datatype[25].sstruct.field[5].datatype 18
-documenttype[0].datatype[25].sstruct.field[5].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[6].name "setfield3"
-documenttype[0].datatype[25].sstruct.field[6].id 1180155772
-documenttype[0].datatype[25].sstruct.field[6].id_v6 1697232199
-documenttype[0].datatype[25].sstruct.field[6].datatype 2125328771
-documenttype[0].datatype[25].sstruct.field[6].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[7].name "setfield4"
-documenttype[0].datatype[25].sstruct.field[7].id 1254131631
-documenttype[0].datatype[25].sstruct.field[7].id_v6 119755202
-documenttype[0].datatype[25].sstruct.field[7].datatype 2065577986
-documenttype[0].datatype[25].sstruct.field[7].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[8].name "tagfield"
-documenttype[0].datatype[25].sstruct.field[8].id 1653562069
-documenttype[0].datatype[25].sstruct.field[8].id_v6 938523246
-documenttype[0].datatype[25].sstruct.field[8].datatype 18
-documenttype[0].datatype[25].sstruct.field[8].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[9].name "structfield"
-documenttype[0].datatype[25].sstruct.field[9].id 486207386
-documenttype[0].datatype[25].sstruct.field[9].id_v6 418303145
-documenttype[0].datatype[25].sstruct.field[9].datatype 109267174
-documenttype[0].datatype[25].sstruct.field[9].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[10].name "structarrayfield"
-documenttype[0].datatype[25].sstruct.field[10].id 335048518
-documenttype[0].datatype[25].sstruct.field[10].id_v6 607034174
-documenttype[0].datatype[25].sstruct.field[10].datatype -1244829667
-documenttype[0].datatype[25].sstruct.field[10].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[11].name "stringmapfield"
-documenttype[0].datatype[25].sstruct.field[11].id 117465687
-documenttype[0].datatype[25].sstruct.field[11].id_v6 1492788095
-documenttype[0].datatype[25].sstruct.field[11].datatype 339965458
-documenttype[0].datatype[25].sstruct.field[11].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[12].name "intmapfield"
-documenttype[0].datatype[25].sstruct.field[12].id 121004462
-documenttype[0].datatype[25].sstruct.field[12].id_v6 1642487905
-documenttype[0].datatype[25].sstruct.field[12].datatype -1584287606
-documenttype[0].datatype[25].sstruct.field[12].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[13].name "floatmapfield"
-documenttype[0].datatype[25].sstruct.field[13].id 1239120925
-documenttype[0].datatype[25].sstruct.field[13].id_v6 1609437589
-documenttype[0].datatype[25].sstruct.field[13].datatype 2125154557
-documenttype[0].datatype[25].sstruct.field[13].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[14].name "longmapfield"
-documenttype[0].datatype[25].sstruct.field[14].id 477718745
-documenttype[0].datatype[25].sstruct.field[14].id_v6 920341968
-documenttype[0].datatype[25].sstruct.field[14].datatype -1715531035
-documenttype[0].datatype[25].sstruct.field[14].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[15].name "doublemapfield"
-documenttype[0].datatype[25].sstruct.field[15].id 877047192
-documenttype[0].datatype[25].sstruct.field[15].id_v6 957317090
-documenttype[0].datatype[25].sstruct.field[15].datatype 2138385264
-documenttype[0].datatype[25].sstruct.field[15].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[16].name "arraymapfield"
-documenttype[0].datatype[25].sstruct.field[16].id 1670805928
-documenttype[0].datatype[25].sstruct.field[16].id_v6 1940354311
-documenttype[0].datatype[25].sstruct.field[16].datatype 435886609
-documenttype[0].datatype[25].sstruct.field[16].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[17].name "arrarr"
-documenttype[0].datatype[25].sstruct.field[17].id 1962567166
-documenttype[0].datatype[25].sstruct.field[17].id_v6 885141301
-documenttype[0].datatype[25].sstruct.field[17].datatype -794985308
-documenttype[0].datatype[25].sstruct.field[17].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[18].name "maparr"
-documenttype[0].datatype[25].sstruct.field[18].id 904375219
-documenttype[0].datatype[25].sstruct.field[18].id_v6 63700074
-documenttype[0].datatype[25].sstruct.field[18].datatype 69621385
-documenttype[0].datatype[25].sstruct.field[18].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[19].name "complexarray"
-documenttype[0].datatype[25].sstruct.field[19].id 795629533
-documenttype[0].datatype[25].sstruct.field[19].id_v6 658530305
-documenttype[0].datatype[25].sstruct.field[19].datatype 1416345047
-documenttype[0].datatype[25].sstruct.field[19].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[20].name "mystructfield"
-documenttype[0].datatype[25].sstruct.field[20].id 1348513378
-documenttype[0].datatype[25].sstruct.field[20].id_v6 2033170300
-documenttype[0].datatype[25].sstruct.field[20].datatype -2092985853
-documenttype[0].datatype[25].sstruct.field[20].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[21].name "mystructmap"
-documenttype[0].datatype[25].sstruct.field[21].id 1511423250
-documenttype[0].datatype[25].sstruct.field[21].id_v6 449602635
-documenttype[0].datatype[25].sstruct.field[21].datatype 1901258752
-documenttype[0].datatype[25].sstruct.field[21].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[22].name "mystructarr"
-documenttype[0].datatype[25].sstruct.field[22].id 595856991
-documenttype[0].datatype[25].sstruct.field[22].id_v6 764861972
-documenttype[0].datatype[25].sstruct.field[22].datatype 759956026
-documenttype[0].datatype[25].sstruct.field[22].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[23].name "Folders"
-documenttype[0].datatype[25].sstruct.field[23].id 34575524
-documenttype[0].datatype[25].sstruct.field[23].id_v6 280569744
-documenttype[0].datatype[25].sstruct.field[23].datatype -389833101
-documenttype[0].datatype[25].sstruct.field[23].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[24].name "juletre"
-documenttype[0].datatype[25].sstruct.field[24].id 1039981530
-documenttype[0].datatype[25].sstruct.field[24].id_v6 2073084146
-documenttype[0].datatype[25].sstruct.field[24].datatype 4
-documenttype[0].datatype[25].sstruct.field[24].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[25].name "album0"
-documenttype[0].datatype[25].sstruct.field[25].id 764312262
-documenttype[0].datatype[25].sstruct.field[25].id_v6 1409364160
-documenttype[0].datatype[25].sstruct.field[25].datatype 18
-documenttype[0].datatype[25].sstruct.field[25].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[26].name "album1"
-documenttype[0].datatype[25].sstruct.field[26].id 1967160809
-documenttype[0].datatype[25].sstruct.field[26].id_v6 1833811264
-documenttype[0].datatype[25].sstruct.field[26].datatype 18
-documenttype[0].datatype[25].sstruct.field[26].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[27].name "other"
-documenttype[0].datatype[25].sstruct.field[27].id 2443357
-documenttype[0].datatype[25].sstruct.field[27].id_v6 903806222
-documenttype[0].datatype[25].sstruct.field[27].datatype 4
-documenttype[0].datatype[25].sstruct.field[27].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[28].name "rankfeatures"
-documenttype[0].datatype[25].sstruct.field[28].id 1883197392
-documenttype[0].datatype[25].sstruct.field[28].id_v6 699950698
-documenttype[0].datatype[25].sstruct.field[28].datatype 2
-documenttype[0].datatype[25].sstruct.field[28].detailedtype ""
-documenttype[0].datatype[25].sstruct.field[29].name "summaryfeatures"
-documenttype[0].datatype[25].sstruct.field[29].id 1840337115
-documenttype[0].datatype[25].sstruct.field[29].id_v6 1981648971
-documenttype[0].datatype[25].sstruct.field[29].datatype 2
-documenttype[0].datatype[25].sstruct.field[29].detailedtype ""
documenttype[0].datatype[26].id 348447225
documenttype[0].datatype[26].type STRUCT
documenttype[0].datatype[26].array.element.id 0
@@ -610,6 +605,11 @@ documenttype[0].datatype[26].sstruct.compression.type NONE
documenttype[0].datatype[26].sstruct.compression.level 0
documenttype[0].datatype[26].sstruct.compression.threshold 95
documenttype[0].datatype[26].sstruct.compression.minsize 200
+documenttype[0].datatype[26].sstruct.field[0].name "complexarray"
+documenttype[0].datatype[26].sstruct.field[0].id 795629533
+documenttype[0].datatype[26].sstruct.field[0].id_v6 658530305
+documenttype[0].datatype[26].sstruct.field[0].datatype 1416345047
+documenttype[0].datatype[26].sstruct.field[0].detailedtype ""
documenttype[0].fieldsets{[document]}.fields[0] "Folders"
documenttype[0].fieldsets{[document]}.fields[1] "abyte"
documenttype[0].fieldsets{[document]}.fields[2] "album0"
@@ -636,4 +636,4 @@ documenttype[0].fieldsets{[document]}.fields[22] "setfield4"
documenttype[0].fieldsets{[document]}.fields[23] "stringmapfield"
documenttype[0].fieldsets{[document]}.fields[24] "structarrayfield"
documenttype[0].fieldsets{[document]}.fields[25] "structfield"
-documenttype[0].fieldsets{[document]}.fields[26] "tagfield"
+documenttype[0].fieldsets{[document]}.fields[26] "tagfield" \ No newline at end of file
diff --git a/config-model/src/test/configmodel/types/documenttypes_with_doc_field.cfg b/config-model/src/test/configmodel/types/documenttypes_with_doc_field.cfg
index 3f0509ecbbf..3073dd55fba 100644
--- a/config-model/src/test/configmodel/types/documenttypes_with_doc_field.cfg
+++ b/config-model/src/test/configmodel/types/documenttypes_with_doc_field.cfg
@@ -111,4 +111,4 @@ documenttype[1].datatype[2].sstruct.compression.type NONE
documenttype[1].datatype[2].sstruct.compression.level 0
documenttype[1].datatype[2].sstruct.compression.threshold 95
documenttype[1].datatype[2].sstruct.compression.minsize 200
-documenttype[1].fieldsets{[document]}.fields[0] "doc_field"
+documenttype[1].fieldsets{[document]}.fields[0] "doc_field" \ No newline at end of file
diff --git a/config-model/src/test/configmodel/types/types.sd b/config-model/src/test/configmodel/types/types.sd
index 9bd9602008c..f34a6776b11 100644
--- a/config-model/src/test/configmodel/types/types.sd
+++ b/config-model/src/test/configmodel/types/types.sd
@@ -90,9 +90,9 @@ search types {
#field wildcardfield2 type map<?,?> {
#}
- field arrarr type array<array<array<string>>> {}
- field maparr type array<map<string, string>> {}
- field complexarray type array< map<int, array<array<string>>> > {}
+ field arrarr type array<array<array<string>>> {header}
+ field maparr type array<map<string, string>> {header}
+ field complexarray type array< map<int, array<array<string>>> > {body}
struct mystruct {
field bytearr type array<byte>{}
@@ -101,9 +101,9 @@ search types {
field structfield type string {}
}
- field mystructfield type mystruct {}
- field mystructmap type map<int, mystruct> {}
- field mystructarr type array<mystruct> {}
+ field mystructfield type mystruct {header}
+ field mystructmap type map<int, mystruct> {header}
+ field mystructarr type array<mystruct> {header}
struct folder {
field Version type int {}
@@ -130,6 +130,7 @@ search types {
create-if-nonexistent
remove-if-zero
}
+ header
}
# Field defined same way as tag
@@ -139,6 +140,7 @@ search types {
create-if-nonexistent
remove-if-zero
}
+ header
}
}
diff --git a/config-model/src/test/derived/inheritstruct/child.sd b/config-model/src/test/derived/inheritstruct/child.sd
index 5ac69c429e1..cd3d4f51458 100644
--- a/config-model/src/test/derived/inheritstruct/child.sd
+++ b/config-model/src/test/derived/inheritstruct/child.sd
@@ -3,6 +3,7 @@ search child {
document child inherits parent {
field child_struct_field type my_struct {
indexing: summary | index
+ header
match: prefix
}
}
diff --git a/config-model/src/test/derived/mail/mail.sd b/config-model/src/test/derived/mail/mail.sd
index 5c19522125c..6d30891f307 100644
--- a/config-model/src/test/derived/mail/mail.sd
+++ b/config-model/src/test/derived/mail/mail.sd
@@ -54,31 +54,38 @@ search mail {
field body type string {
indexing: summary | index
match: substring
+ body
}
field attachmentcount type int {
indexing: summary | index
+ body
}
field attachmentnames type string {
indexing: index
+ body
}
field attachmenttypes type string {
indexing: index
+ body
}
field attachmentlanguages type string {
indexing: index
match: prefix
+ body
}
field attachmentcontent type string {
indexing: summary | index
match: prefix
+ body
}
field attachments type raw[] {
+ body
}
}
diff --git a/config-model/src/test/derived/music3/music3.sd b/config-model/src/test/derived/music3/music3.sd
index c49b0c5aaee..8aeed27d29f 100644
--- a/config-model/src/test/derived/music3/music3.sd
+++ b/config-model/src/test/derived/music3/music3.sd
@@ -5,25 +5,37 @@ search music3 {
field title type string {
indexing: summary | index
+ # index-to: title, default
rank-type: about
+
+ header
}
field artist type string {
indexing: summary | attribute | index
+ # index-to: artist, default
rank-type:about
+
+ header
}
field year type int {
indexing: summary | attribute
+
+ header
}
# Increase rank score of popular documents regardless of query
field popularity type int {
indexing: summary | attribute
+
+ header
}
field url type uri {
indexing: summary | index
+
+ header
}
}
diff --git a/config-model/src/test/derived/streamingjuniper/streamingjuniper.sd b/config-model/src/test/derived/streamingjuniper/streamingjuniper.sd
index 92b833ffd5d..0d81ecd21f3 100644
--- a/config-model/src/test/derived/streamingjuniper/streamingjuniper.sd
+++ b/config-model/src/test/derived/streamingjuniper/streamingjuniper.sd
@@ -3,10 +3,12 @@ search streamingjuniper {
document streamingjuniper {
field f1 type string {
indexing: index | summary
+ header
bolding: on
}
field f2 type string {
indexing: index | summary
+ header
summary: dynamic
}
}
diff --git a/config-model/src/test/derived/streamingstructdefault/streamingstructdefault.sd b/config-model/src/test/derived/streamingstructdefault/streamingstructdefault.sd
index 46112db7454..6d16a1b3808 100644
--- a/config-model/src/test/derived/streamingstructdefault/streamingstructdefault.sd
+++ b/config-model/src/test/derived/streamingstructdefault/streamingstructdefault.sd
@@ -8,9 +8,11 @@ search streamingstructdefault {
field f1 type array<string> {
indexing: index | summary
summary-to: default
+ header
}
field f2 type array<sct> {
indexing: index | summary
+ header
}
}
document-summary default {
diff --git a/config-model/src/test/derived/twostreamingstructs/whatever.sd b/config-model/src/test/derived/twostreamingstructs/whatever.sd
index 5600b0cec7d..25da3f06a38 100644
--- a/config-model/src/test/derived/twostreamingstructs/whatever.sd
+++ b/config-model/src/test/derived/twostreamingstructs/whatever.sd
@@ -9,6 +9,7 @@ search whatever {
field f1 type pair {
indexing: summary
+ body
}
}
diff --git a/config-model/src/test/derived/types/types.sd b/config-model/src/test/derived/types/types.sd
index d3d8aa82b28..839cb08dbd6 100644
--- a/config-model/src/test/derived/types/types.sd
+++ b/config-model/src/test/derived/types/types.sd
@@ -93,9 +93,9 @@ search types {
#field wildcardfield2 type map<?,?> {
#}
- field arrarr type array<array<array<string>>> {}
- field maparr type array<map<string, string>> {}
- field complexarray type array< map<int, array<array<string>>> > {}
+ field arrarr type array<array<array<string>>> {header}
+ field maparr type array<map<string, string>> {header}
+ field complexarray type array< map<int, array<array<string>>> > {body}
struct mystruct {
field bytearr type array<byte>{}
@@ -104,9 +104,9 @@ search types {
field structfield type string {}
}
- field mystructfield type mystruct {}
- field mystructmap type map<int, mystruct> {}
- field mystructarr type array<mystruct> {}
+ field mystructfield type mystruct {header}
+ field mystructmap type map<int, mystruct> {header}
+ field mystructarr type array<mystruct> {header}
struct folder {
field Version type int {}
@@ -133,6 +133,7 @@ search types {
create-if-nonexistent
remove-if-zero
}
+ header
}
# Field defined same way as tag
@@ -142,11 +143,13 @@ search types {
create-if-nonexistent
remove-if-zero
}
+ header
}
}
field pst_sta_boldingoff_nomatch_tag_01 type tag {
+ body
}
field other type long {
diff --git a/config-model/src/test/examples/rankpropvars.sd b/config-model/src/test/examples/rankpropvars.sd
index 1413b8a93ca..28959edbc09 100644
--- a/config-model/src/test/examples/rankpropvars.sd
+++ b/config-model/src/test/examples/rankpropvars.sd
@@ -52,21 +52,28 @@ document music {
field title type string {
indexing: index | summary
+ body
}
field artist type string {
+ ## index-to: a
indexing: index | summary
+ body
}
field year type int {
indexing: attribute | summary
+ ## index-to: y
+ body
}
field url type uri {
+ body
}
field Popularity type string {
indexing: attribute | summary
+ body
}
}
diff --git a/config-model/src/test/examples/simple.sd b/config-model/src/test/examples/simple.sd
index 8a97db6afa2..0435ea439df 100644
--- a/config-model/src/test/examples/simple.sd
+++ b/config-model/src/test/examples/simple.sd
@@ -47,6 +47,7 @@ search simple {
rank-type: tags
stemming: none
normalizing: none
+ header
}
field popularity type int {
@@ -80,6 +81,7 @@ search simple {
field categories type string {
indexing: input categories_src | lowercase | normalize | index
+ body
}
field categoriesagain type string {
diff --git a/config-model/src/test/examples/structoutsideofdocument.sd b/config-model/src/test/examples/structoutsideofdocument.sd
index 5c062ef19a6..4c52a248bf5 100644
--- a/config-model/src/test/examples/structoutsideofdocument.sd
+++ b/config-model/src/test/examples/structoutsideofdocument.sd
@@ -11,5 +11,6 @@ search structoutsideofdocument {
field nallestruct type array<nalle> {
indexing: summary
+ body
}
}
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java
index 89e551fa789..df91619ad8c 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java
@@ -107,7 +107,7 @@ public class SearchImporterTestCase extends SearchDefinitionTestCase {
field= search.getConcreteField("categories");
assertEquals("{ input categories_src | lowercase | normalize | tokenize normalize stem:\"BEST\" | index categories; }",
field.getIndexingScript().toString());
- assertTrue(field.isHeader());
+ assertTrue(!field.isHeader());
// Eight field
field= search.getConcreteField("categoriesagain");