aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java20
-rw-r--r--config-model/src/test/derived/advanced/index-info.cfg130
-rw-r--r--config-model/src/test/derived/arrays/index-info.cfg82
-rw-r--r--config-model/src/test/derived/attributes/attributes.sd2
-rw-r--r--config-model/src/test/derived/attributes/index-info.cfg290
-rw-r--r--config-model/src/test/derived/combinedattributeandindexsearch/index-info.cfg66
-rw-r--r--config-model/src/test/derived/emptydefault/index-info.cfg22
-rw-r--r--config-model/src/test/derived/id/index-info.cfg48
-rw-r--r--config-model/src/test/derived/indexinfo_fieldsets/index-info.cfg149
-rw-r--r--config-model/src/test/derived/indexinfo_lowercase/index-info.cfg428
-rw-r--r--config-model/src/test/derived/indexschema/index-info.cfg582
-rw-r--r--config-model/src/test/derived/indexswitches/index-info.cfg52
-rw-r--r--config-model/src/test/derived/inheritance/attributes.cfg67
-rw-r--r--config-model/src/test/derived/inheritance/documentmanager.cfg579
-rw-r--r--config-model/src/test/derived/inheritance/ilscripts.cfg21
-rw-r--r--config-model/src/test/derived/inheritance/index-info.cfg73
-rw-r--r--config-model/src/test/derived/inheritance/rank-profiles.cfg26
-rw-r--r--config-model/src/test/derived/inheritance/summary.cfg49
-rw-r--r--config-model/src/test/derived/inheritance/summarymap.cfg31
-rw-r--r--config-model/src/test/derived/inheritstruct/index-info.cfg18
-rw-r--r--config-model/src/test/derived/music/index-info.cfg360
-rw-r--r--config-model/src/test/derived/music/rank-profiles.cfg14
-rw-r--r--config-model/src/test/derived/newrank/index-info.cfg292
-rw-r--r--config-model/src/test/derived/prefixexactattribute/index-info.cfg42
-rw-r--r--config-model/src/test/derived/rankprofiles/rank-profiles.cfg2
-rw-r--r--config-model/src/test/derived/ranktypes/index-info.cfg64
-rw-r--r--config-model/src/test/derived/tensor/documenttypes.cfg4
-rw-r--r--config-model/src/test/derived/tensor/rank-profiles.cfg88
-rw-r--r--config-model/src/test/derived/tensor/summary.cfg52
-rw-r--r--config-model/src/test/derived/types/index-info.cfg596
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java22
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/PrefixExactAttributeTestCase.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/Index.java8
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java91
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/CustomParser.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java3
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/TokenPosition.java9
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/Model.java8
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java32
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/query/parser/test/ParseTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/semantics/test/RuleBaseAbstractTestCase.java1
-rw-r--r--container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java61
-rw-r--r--linguistics/src/main/java/com/yahoo/language/simple/SimpleDetector.java6
44 files changed, 2309 insertions, 2189 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java
index 0d8d21400aa..9c8f3d7d8dc 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java
@@ -144,6 +144,9 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer {
if (normalizeAccents(field)) {
addIndexCommand(field, CMD_NORMALIZE);
}
+ if (field.getMatching() == null || field.getMatching().getType().equals(Matching.Type.TEXT)) {
+ addIndexCommand(field, CMD_PLAIN_TOKENS);
+ }
}
if (isUriField(field)) {
@@ -285,9 +288,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer {
builder.indexinfo(iiB);
}
- // TODO: This implementation is completely brain dead.
- // Move it to the FieldSetValidity processor (and rename it) as that already has to look at this.
- // Also add more explicit testing of this, e.g to indexinfo_fieldsets in ExportingTestCase. - Jon
+ // TODO: Move this to the FieldSetValidity processor (and rename it) as that already has to look at this.
private void addFieldSetCommands(IndexInfoConfig.Indexinfo.Builder iiB, FieldSet fieldSet) {
// Explicit query commands on the field set, overrides everything.
if (!fieldSet.queryCommands().isEmpty()) {
@@ -351,6 +352,12 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer {
.indexname(fieldSet.getName())
.command(CMD_INDEX));
if ( ! isExactMatch(fieldSetMatching)) {
+ if (fieldSetMatching == null || fieldSetMatching.getType().equals(Matching.Type.TEXT)) {
+ iiB.command(
+ new IndexInfoConfig.Indexinfo.Command.Builder()
+ .indexname(fieldSet.getName())
+ .command(CMD_PLAIN_TOKENS));
+ }
if (anyStemming) {
iiB.command(
new IndexInfoConfig.Indexinfo.Command.Builder()
@@ -441,13 +448,6 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer {
return false;
}
- /**
- * Returns a read only iterator over the index commands of this
- */
- public Iterator<IndexCommand> indexCommandIterator() {
- return Collections.unmodifiableSet(commands).iterator();
- }
-
protected String getDerivedName() {
return "index-info";
}
diff --git a/config-model/src/test/derived/advanced/index-info.cfg b/config-model/src/test/derived/advanced/index-info.cfg
index 7af5b858d3a..aad9256f1f3 100644
--- a/config-model/src/test/derived/advanced/index-info.cfg
+++ b/config-model/src/test/derived/advanced/index-info.cfg
@@ -23,75 +23,91 @@ indexinfo[0].command[10].indexname "attributes"
indexinfo[0].command[10].command "lowercase"
indexinfo[0].command[11].indexname "attributes"
indexinfo[0].command[11].command "normalize"
-indexinfo[0].command[12].indexname "debug"
-indexinfo[0].command[12].command "index"
+indexinfo[0].command[12].indexname "attributes"
+indexinfo[0].command[12].command "plain-tokens"
indexinfo[0].command[13].indexname "debug"
-indexinfo[0].command[13].command "lowercase"
+indexinfo[0].command[13].command "index"
indexinfo[0].command[14].indexname "debug"
-indexinfo[0].command[14].command "normalize"
-indexinfo[0].command[15].indexname "location"
-indexinfo[0].command[15].command "default-position"
-indexinfo[0].command[16].indexname "location"
-indexinfo[0].command[16].command "index"
-indexinfo[0].command[17].indexname "location.distance"
-indexinfo[0].command[17].command "index"
-indexinfo[0].command[18].indexname "location.distance"
-indexinfo[0].command[18].command "numerical"
-indexinfo[0].command[19].indexname "location.position"
+indexinfo[0].command[14].command "lowercase"
+indexinfo[0].command[15].indexname "debug"
+indexinfo[0].command[15].command "normalize"
+indexinfo[0].command[16].indexname "debug"
+indexinfo[0].command[16].command "plain-tokens"
+indexinfo[0].command[17].indexname "location"
+indexinfo[0].command[17].command "default-position"
+indexinfo[0].command[18].indexname "location"
+indexinfo[0].command[18].command "index"
+indexinfo[0].command[19].indexname "location.distance"
indexinfo[0].command[19].command "index"
-indexinfo[0].command[20].indexname "location.position"
-indexinfo[0].command[20].command "multivalue"
-indexinfo[0].command[21].indexname "location_zcurve"
+indexinfo[0].command[20].indexname "location.distance"
+indexinfo[0].command[20].command "numerical"
+indexinfo[0].command[21].indexname "location.position"
indexinfo[0].command[21].command "index"
-indexinfo[0].command[22].indexname "location_zcurve"
-indexinfo[0].command[22].command "attribute"
+indexinfo[0].command[22].indexname "location.position"
+indexinfo[0].command[22].command "multivalue"
indexinfo[0].command[23].indexname "location_zcurve"
-indexinfo[0].command[23].command "fast-search"
+indexinfo[0].command[23].command "index"
indexinfo[0].command[24].indexname "location_zcurve"
-indexinfo[0].command[24].command "numerical"
-indexinfo[0].command[25].indexname "mysummary"
-indexinfo[0].command[25].command "index"
-indexinfo[0].command[26].indexname "product"
-indexinfo[0].command[26].command "index"
-indexinfo[0].command[27].indexname "product"
-indexinfo[0].command[27].command "lowercase"
+indexinfo[0].command[24].command "attribute"
+indexinfo[0].command[25].indexname "location_zcurve"
+indexinfo[0].command[25].command "fast-search"
+indexinfo[0].command[26].indexname "location_zcurve"
+indexinfo[0].command[26].command "numerical"
+indexinfo[0].command[27].indexname "mysummary"
+indexinfo[0].command[27].command "index"
indexinfo[0].command[28].indexname "product"
-indexinfo[0].command[28].command "stem:SHORTEST"
-indexinfo[0].command[29].indexname "product2"
-indexinfo[0].command[29].command "index"
-indexinfo[0].command[30].indexname "product2"
-indexinfo[0].command[30].command "lowercase"
-indexinfo[0].command[31].indexname "product2"
-indexinfo[0].command[31].command "stem:SHORTEST"
-indexinfo[0].command[32].indexname "product3"
+indexinfo[0].command[28].command "index"
+indexinfo[0].command[29].indexname "product"
+indexinfo[0].command[29].command "lowercase"
+indexinfo[0].command[30].indexname "product"
+indexinfo[0].command[30].command "stem:SHORTEST"
+indexinfo[0].command[31].indexname "product"
+indexinfo[0].command[31].command "plain-tokens"
+indexinfo[0].command[32].indexname "product2"
indexinfo[0].command[32].command "index"
-indexinfo[0].command[33].indexname "product3"
+indexinfo[0].command[33].indexname "product2"
indexinfo[0].command[33].command "lowercase"
-indexinfo[0].command[34].indexname "product3"
+indexinfo[0].command[34].indexname "product2"
indexinfo[0].command[34].command "stem:SHORTEST"
-indexinfo[0].command[35].indexname "rankfeatures"
-indexinfo[0].command[35].command "index"
-indexinfo[0].command[36].indexname "summaryfeatures"
+indexinfo[0].command[35].indexname "product2"
+indexinfo[0].command[35].command "plain-tokens"
+indexinfo[0].command[36].indexname "product3"
indexinfo[0].command[36].command "index"
-indexinfo[0].command[37].indexname "title"
-indexinfo[0].command[37].command "index"
-indexinfo[0].command[38].indexname "title"
-indexinfo[0].command[38].command "lowercase"
-indexinfo[0].command[39].indexname "title"
-indexinfo[0].command[39].command "normalize"
-indexinfo[0].command[40].indexname "title_s"
+indexinfo[0].command[37].indexname "product3"
+indexinfo[0].command[37].command "lowercase"
+indexinfo[0].command[38].indexname "product3"
+indexinfo[0].command[38].command "stem:SHORTEST"
+indexinfo[0].command[39].indexname "product3"
+indexinfo[0].command[39].command "plain-tokens"
+indexinfo[0].command[40].indexname "rankfeatures"
indexinfo[0].command[40].command "index"
-indexinfo[0].command[41].indexname "titleabstract"
-indexinfo[0].command[41].command "lowercase"
-indexinfo[0].command[42].indexname "titleabstract"
+indexinfo[0].command[41].indexname "summaryfeatures"
+indexinfo[0].command[41].command "index"
+indexinfo[0].command[42].indexname "title"
indexinfo[0].command[42].command "index"
-indexinfo[0].command[43].indexname "titleabstract"
-indexinfo[0].command[43].command "normalize"
-indexinfo[0].command[44].indexname "default"
-indexinfo[0].command[44].command "lowercase"
-indexinfo[0].command[45].indexname "default"
-indexinfo[0].command[45].command "index"
-indexinfo[0].command[46].indexname "default"
-indexinfo[0].command[46].command "normalize"
+indexinfo[0].command[43].indexname "title"
+indexinfo[0].command[43].command "lowercase"
+indexinfo[0].command[44].indexname "title"
+indexinfo[0].command[44].command "normalize"
+indexinfo[0].command[45].indexname "title"
+indexinfo[0].command[45].command "plain-tokens"
+indexinfo[0].command[46].indexname "title_s"
+indexinfo[0].command[46].command "index"
+indexinfo[0].command[47].indexname "titleabstract"
+indexinfo[0].command[47].command "lowercase"
+indexinfo[0].command[48].indexname "titleabstract"
+indexinfo[0].command[48].command "index"
+indexinfo[0].command[49].indexname "titleabstract"
+indexinfo[0].command[49].command "plain-tokens"
+indexinfo[0].command[50].indexname "titleabstract"
+indexinfo[0].command[50].command "normalize"
+indexinfo[0].command[51].indexname "default"
+indexinfo[0].command[51].command "lowercase"
+indexinfo[0].command[52].indexname "default"
+indexinfo[0].command[52].command "index"
+indexinfo[0].command[53].indexname "default"
+indexinfo[0].command[53].command "plain-tokens"
+indexinfo[0].command[54].indexname "default"
+indexinfo[0].command[54].command "normalize"
indexinfo[0].alias[0].alias "headline"
indexinfo[0].alias[0].indexname "title" \ No newline at end of file
diff --git a/config-model/src/test/derived/arrays/index-info.cfg b/config-model/src/test/derived/arrays/index-info.cfg
index 1439dcc8bf7..171a2c1adce 100644
--- a/config-model/src/test/derived/arrays/index-info.cfg
+++ b/config-model/src/test/derived/arrays/index-info.cfg
@@ -13,51 +13,61 @@ indexinfo[0].command[5].indexname "tags"
indexinfo[0].command[5].command "stem:SHORTEST"
indexinfo[0].command[6].indexname "tags"
indexinfo[0].command[6].command "normalize"
-indexinfo[0].command[7].indexname "ratings"
-indexinfo[0].command[7].command "index"
+indexinfo[0].command[7].indexname "tags"
+indexinfo[0].command[7].command "plain-tokens"
indexinfo[0].command[8].indexname "ratings"
-indexinfo[0].command[8].command "multivalue"
+indexinfo[0].command[8].command "index"
indexinfo[0].command[9].indexname "ratings"
-indexinfo[0].command[9].command "attribute"
-indexinfo[0].command[10].indexname "a"
-indexinfo[0].command[10].command "index"
+indexinfo[0].command[9].command "multivalue"
+indexinfo[0].command[10].indexname "ratings"
+indexinfo[0].command[10].command "attribute"
indexinfo[0].command[11].indexname "a"
-indexinfo[0].command[11].command "lowercase"
+indexinfo[0].command[11].command "index"
indexinfo[0].command[12].indexname "a"
-indexinfo[0].command[12].command "stem:SHORTEST"
+indexinfo[0].command[12].command "lowercase"
indexinfo[0].command[13].indexname "a"
-indexinfo[0].command[13].command "normalize"
-indexinfo[0].command[14].indexname "b"
-indexinfo[0].command[14].command "index"
-indexinfo[0].command[15].indexname "b"
-indexinfo[0].command[15].command "lowercase"
+indexinfo[0].command[13].command "stem:SHORTEST"
+indexinfo[0].command[14].indexname "a"
+indexinfo[0].command[14].command "normalize"
+indexinfo[0].command[15].indexname "a"
+indexinfo[0].command[15].command "plain-tokens"
indexinfo[0].command[16].indexname "b"
-indexinfo[0].command[16].command "multivalue"
+indexinfo[0].command[16].command "index"
indexinfo[0].command[17].indexname "b"
-indexinfo[0].command[17].command "stem:SHORTEST"
+indexinfo[0].command[17].command "lowercase"
indexinfo[0].command[18].indexname "b"
-indexinfo[0].command[18].command "normalize"
-indexinfo[0].command[19].indexname "c"
-indexinfo[0].command[19].command "index"
-indexinfo[0].command[20].indexname "c"
-indexinfo[0].command[20].command "lowercase"
-indexinfo[0].command[21].indexname "c"
-indexinfo[0].command[21].command "multivalue"
+indexinfo[0].command[18].command "multivalue"
+indexinfo[0].command[19].indexname "b"
+indexinfo[0].command[19].command "stem:SHORTEST"
+indexinfo[0].command[20].indexname "b"
+indexinfo[0].command[20].command "normalize"
+indexinfo[0].command[21].indexname "b"
+indexinfo[0].command[21].command "plain-tokens"
indexinfo[0].command[22].indexname "c"
-indexinfo[0].command[22].command "stem:SHORTEST"
+indexinfo[0].command[22].command "index"
indexinfo[0].command[23].indexname "c"
-indexinfo[0].command[23].command "normalize"
-indexinfo[0].command[24].indexname "rankfeatures"
-indexinfo[0].command[24].command "index"
-indexinfo[0].command[25].indexname "summaryfeatures"
-indexinfo[0].command[25].command "index"
-indexinfo[0].command[26].indexname "default"
-indexinfo[0].command[26].command "lowercase"
-indexinfo[0].command[27].indexname "default"
-indexinfo[0].command[27].command "multivalue"
-indexinfo[0].command[28].indexname "default"
+indexinfo[0].command[23].command "lowercase"
+indexinfo[0].command[24].indexname "c"
+indexinfo[0].command[24].command "multivalue"
+indexinfo[0].command[25].indexname "c"
+indexinfo[0].command[25].command "stem:SHORTEST"
+indexinfo[0].command[26].indexname "c"
+indexinfo[0].command[26].command "normalize"
+indexinfo[0].command[27].indexname "c"
+indexinfo[0].command[27].command "plain-tokens"
+indexinfo[0].command[28].indexname "rankfeatures"
indexinfo[0].command[28].command "index"
-indexinfo[0].command[29].indexname "default"
-indexinfo[0].command[29].command "stem:SHORTEST"
+indexinfo[0].command[29].indexname "summaryfeatures"
+indexinfo[0].command[29].command "index"
indexinfo[0].command[30].indexname "default"
-indexinfo[0].command[30].command "normalize" \ No newline at end of file
+indexinfo[0].command[30].command "lowercase"
+indexinfo[0].command[31].indexname "default"
+indexinfo[0].command[31].command "multivalue"
+indexinfo[0].command[32].indexname "default"
+indexinfo[0].command[32].command "index"
+indexinfo[0].command[33].indexname "default"
+indexinfo[0].command[33].command "plain-tokens"
+indexinfo[0].command[34].indexname "default"
+indexinfo[0].command[34].command "stem:SHORTEST"
+indexinfo[0].command[35].indexname "default"
+indexinfo[0].command[35].command "normalize" \ No newline at end of file
diff --git a/config-model/src/test/derived/attributes/attributes.sd b/config-model/src/test/derived/attributes/attributes.sd
index 95df6367ee7..7487460b4d4 100644
--- a/config-model/src/test/derived/attributes/attributes.sd
+++ b/config-model/src/test/derived/attributes/attributes.sd
@@ -32,12 +32,10 @@ search attributes {
indexing: summary
}
- # Unique only - not searchable. No match-group since the attribute is not to be used for searching
field a5 type string {
indexing: attribute | summary | index
}
- # Not searchable
field a6 type string {
indexing: attribute | summary | index
}
diff --git a/config-model/src/test/derived/attributes/index-info.cfg b/config-model/src/test/derived/attributes/index-info.cfg
index c9a12da4479..a5d2bc346b9 100644
--- a/config-model/src/test/derived/attributes/index-info.cfg
+++ b/config-model/src/test/derived/attributes/index-info.cfg
@@ -1,141 +1,151 @@
indexinfo[0].name "attributes"
-indexinfo[0].command[].indexname "sddocname"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "sddocname"
-indexinfo[0].command[].command "word"
-indexinfo[0].command[].indexname "a1"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a1"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "a2"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a2"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "a3"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a3"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "a4"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a5"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a5"
-indexinfo[0].command[].command "lowercase"
-indexinfo[0].command[].indexname "a5"
-indexinfo[0].command[].command "stem:SHORTEST"
-indexinfo[0].command[].indexname "a5"
-indexinfo[0].command[].command "normalize"
-indexinfo[0].command[].indexname "a6"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a6"
-indexinfo[0].command[].command "lowercase"
-indexinfo[0].command[].indexname "a6"
-indexinfo[0].command[].command "stem:SHORTEST"
-indexinfo[0].command[].indexname "a6"
-indexinfo[0].command[].command "normalize"
-indexinfo[0].command[].indexname "default"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "default"
-indexinfo[0].command[].command "lowercase"
-indexinfo[0].command[].indexname "default"
-indexinfo[0].command[].command "stem:SHORTEST"
-indexinfo[0].command[].indexname "default"
-indexinfo[0].command[].command "normalize"
-indexinfo[0].command[].indexname "a7"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a8"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "b1"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "b1"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "b1"
-indexinfo[0].command[].command "word"
-indexinfo[0].command[].indexname "b2"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "b2"
-indexinfo[0].command[].command "lowercase"
-indexinfo[0].command[].indexname "b2"
-indexinfo[0].command[].command "stem:SHORTEST"
-indexinfo[0].command[].indexname "b2"
-indexinfo[0].command[].command "normalize"
-indexinfo[0].command[].indexname "b3"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "b3"
-indexinfo[0].command[].command "lowercase"
-indexinfo[0].command[].indexname "b3"
-indexinfo[0].command[].command "stem:SHORTEST"
-indexinfo[0].command[].indexname "b3"
-indexinfo[0].command[].command "normalize"
-indexinfo[0].command[].indexname "b4"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "b4"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "b4"
-indexinfo[0].command[].command "numerical"
-indexinfo[0].command[].indexname "b5"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "b5"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "b5"
-indexinfo[0].command[].command "numerical"
-indexinfo[0].command[].indexname "b6"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "b6"
-indexinfo[0].command[].command "multivalue"
-indexinfo[0].command[].indexname "b6"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "b7"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "b7"
-indexinfo[0].command[].command "multivalue"
-indexinfo[0].command[].indexname "b7"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "a9"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a9"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "a9"
-indexinfo[0].command[].command "numerical"
-indexinfo[0].command[].indexname "a10"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a10"
-indexinfo[0].command[].command "multivalue"
-indexinfo[0].command[].indexname "a10"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "a10"
-indexinfo[0].command[].command "fast-search"
-indexinfo[0].command[].indexname "a11"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a11"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "a11"
-indexinfo[0].command[].command "numerical"
-indexinfo[0].command[].indexname "a12"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a12"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "a12"
-indexinfo[0].command[].command "numerical"
-indexinfo[0].command[].indexname "a7_arr"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a7_arr"
-indexinfo[0].command[].command "multivalue"
-indexinfo[0].command[].indexname "a7_arr"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "a7_arr"
-indexinfo[0].command[].command "word"
-indexinfo[0].command[].indexname "a8_arr"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "a8_arr"
-indexinfo[0].command[].command "multivalue"
-indexinfo[0].command[].indexname "a8_arr"
-indexinfo[0].command[].command "attribute"
-indexinfo[0].command[].indexname "a8_arr"
-indexinfo[0].command[].command "word"
-indexinfo[0].command[].indexname "rankfeatures"
-indexinfo[0].command[].command "index"
-indexinfo[0].command[].indexname "summaryfeatures"
-indexinfo[0].command[].command "index"
-indexinfo[0].alias[].alias "date"
-indexinfo[0].alias[].indexname "b3" \ No newline at end of file
+indexinfo[0].command[0].indexname "sddocname"
+indexinfo[0].command[0].command "index"
+indexinfo[0].command[1].indexname "sddocname"
+indexinfo[0].command[1].command "word"
+indexinfo[0].command[2].indexname "a1"
+indexinfo[0].command[2].command "index"
+indexinfo[0].command[3].indexname "a1"
+indexinfo[0].command[3].command "attribute"
+indexinfo[0].command[4].indexname "a2"
+indexinfo[0].command[4].command "index"
+indexinfo[0].command[5].indexname "a2"
+indexinfo[0].command[5].command "attribute"
+indexinfo[0].command[6].indexname "a3"
+indexinfo[0].command[6].command "index"
+indexinfo[0].command[7].indexname "a3"
+indexinfo[0].command[7].command "attribute"
+indexinfo[0].command[8].indexname "a4"
+indexinfo[0].command[8].command "index"
+indexinfo[0].command[9].indexname "a5"
+indexinfo[0].command[9].command "index"
+indexinfo[0].command[10].indexname "a5"
+indexinfo[0].command[10].command "lowercase"
+indexinfo[0].command[11].indexname "a5"
+indexinfo[0].command[11].command "stem:SHORTEST"
+indexinfo[0].command[12].indexname "a5"
+indexinfo[0].command[12].command "normalize"
+indexinfo[0].command[13].indexname "a5"
+indexinfo[0].command[13].command "plain-tokens"
+indexinfo[0].command[14].indexname "a6"
+indexinfo[0].command[14].command "index"
+indexinfo[0].command[15].indexname "a6"
+indexinfo[0].command[15].command "lowercase"
+indexinfo[0].command[16].indexname "a6"
+indexinfo[0].command[16].command "stem:SHORTEST"
+indexinfo[0].command[17].indexname "a6"
+indexinfo[0].command[17].command "normalize"
+indexinfo[0].command[18].indexname "a6"
+indexinfo[0].command[18].command "plain-tokens"
+indexinfo[0].command[19].indexname "a7"
+indexinfo[0].command[19].command "index"
+indexinfo[0].command[20].indexname "a8"
+indexinfo[0].command[20].command "index"
+indexinfo[0].command[21].indexname "b1"
+indexinfo[0].command[21].command "index"
+indexinfo[0].command[22].indexname "b1"
+indexinfo[0].command[22].command "attribute"
+indexinfo[0].command[23].indexname "b1"
+indexinfo[0].command[23].command "word"
+indexinfo[0].command[24].indexname "b2"
+indexinfo[0].command[24].command "index"
+indexinfo[0].command[25].indexname "b2"
+indexinfo[0].command[25].command "lowercase"
+indexinfo[0].command[26].indexname "b2"
+indexinfo[0].command[26].command "stem:SHORTEST"
+indexinfo[0].command[27].indexname "b2"
+indexinfo[0].command[27].command "normalize"
+indexinfo[0].command[28].indexname "b2"
+indexinfo[0].command[28].command "plain-tokens"
+indexinfo[0].command[29].indexname "b3"
+indexinfo[0].command[29].command "index"
+indexinfo[0].command[30].indexname "b3"
+indexinfo[0].command[30].command "lowercase"
+indexinfo[0].command[31].indexname "b3"
+indexinfo[0].command[31].command "stem:SHORTEST"
+indexinfo[0].command[32].indexname "b3"
+indexinfo[0].command[32].command "normalize"
+indexinfo[0].command[33].indexname "b3"
+indexinfo[0].command[33].command "plain-tokens"
+indexinfo[0].command[34].indexname "b4"
+indexinfo[0].command[34].command "index"
+indexinfo[0].command[35].indexname "b4"
+indexinfo[0].command[35].command "attribute"
+indexinfo[0].command[36].indexname "b4"
+indexinfo[0].command[36].command "numerical"
+indexinfo[0].command[37].indexname "b5"
+indexinfo[0].command[37].command "index"
+indexinfo[0].command[38].indexname "b5"
+indexinfo[0].command[38].command "attribute"
+indexinfo[0].command[39].indexname "b5"
+indexinfo[0].command[39].command "numerical"
+indexinfo[0].command[40].indexname "b6"
+indexinfo[0].command[40].command "index"
+indexinfo[0].command[41].indexname "b6"
+indexinfo[0].command[41].command "multivalue"
+indexinfo[0].command[42].indexname "b6"
+indexinfo[0].command[42].command "attribute"
+indexinfo[0].command[43].indexname "b7"
+indexinfo[0].command[43].command "index"
+indexinfo[0].command[44].indexname "b7"
+indexinfo[0].command[44].command "multivalue"
+indexinfo[0].command[45].indexname "b7"
+indexinfo[0].command[45].command "attribute"
+indexinfo[0].command[46].indexname "a9"
+indexinfo[0].command[46].command "index"
+indexinfo[0].command[47].indexname "a9"
+indexinfo[0].command[47].command "attribute"
+indexinfo[0].command[48].indexname "a9"
+indexinfo[0].command[48].command "numerical"
+indexinfo[0].command[49].indexname "a10"
+indexinfo[0].command[49].command "index"
+indexinfo[0].command[50].indexname "a10"
+indexinfo[0].command[50].command "multivalue"
+indexinfo[0].command[51].indexname "a10"
+indexinfo[0].command[51].command "attribute"
+indexinfo[0].command[52].indexname "a10"
+indexinfo[0].command[52].command "fast-search"
+indexinfo[0].command[53].indexname "a11"
+indexinfo[0].command[53].command "index"
+indexinfo[0].command[54].indexname "a11"
+indexinfo[0].command[54].command "attribute"
+indexinfo[0].command[55].indexname "a11"
+indexinfo[0].command[55].command "numerical"
+indexinfo[0].command[56].indexname "a12"
+indexinfo[0].command[56].command "index"
+indexinfo[0].command[57].indexname "a12"
+indexinfo[0].command[57].command "attribute"
+indexinfo[0].command[58].indexname "a12"
+indexinfo[0].command[58].command "numerical"
+indexinfo[0].command[59].indexname "a7_arr"
+indexinfo[0].command[59].command "index"
+indexinfo[0].command[60].indexname "a7_arr"
+indexinfo[0].command[60].command "multivalue"
+indexinfo[0].command[61].indexname "a7_arr"
+indexinfo[0].command[61].command "attribute"
+indexinfo[0].command[62].indexname "a7_arr"
+indexinfo[0].command[62].command "word"
+indexinfo[0].command[63].indexname "a8_arr"
+indexinfo[0].command[63].command "index"
+indexinfo[0].command[64].indexname "a8_arr"
+indexinfo[0].command[64].command "multivalue"
+indexinfo[0].command[65].indexname "a8_arr"
+indexinfo[0].command[65].command "attribute"
+indexinfo[0].command[66].indexname "a8_arr"
+indexinfo[0].command[66].command "word"
+indexinfo[0].command[67].indexname "rankfeatures"
+indexinfo[0].command[67].command "index"
+indexinfo[0].command[68].indexname "summaryfeatures"
+indexinfo[0].command[68].command "index"
+indexinfo[0].command[69].indexname "default"
+indexinfo[0].command[69].command "lowercase"
+indexinfo[0].command[70].indexname "default"
+indexinfo[0].command[70].command "index"
+indexinfo[0].command[71].indexname "default"
+indexinfo[0].command[71].command "plain-tokens"
+indexinfo[0].command[72].indexname "default"
+indexinfo[0].command[72].command "stem:SHORTEST"
+indexinfo[0].command[73].indexname "default"
+indexinfo[0].command[73].command "normalize"
+indexinfo[0].alias[0].alias "date"
+indexinfo[0].alias[0].indexname "b3" \ No newline at end of file
diff --git a/config-model/src/test/derived/combinedattributeandindexsearch/index-info.cfg b/config-model/src/test/derived/combinedattributeandindexsearch/index-info.cfg
index cd56d204e96..78b074360c4 100644
--- a/config-model/src/test/derived/combinedattributeandindexsearch/index-info.cfg
+++ b/config-model/src/test/derived/combinedattributeandindexsearch/index-info.cfg
@@ -5,37 +5,43 @@ indexinfo[0].command[1].indexname "sddocname"
indexinfo[0].command[1].command "word"
indexinfo[0].command[2].indexname "index1"
indexinfo[0].command[2].command "index"
-indexinfo[0].command[3].indexname "default"
-indexinfo[0].command[3].command "index"
+indexinfo[0].command[3].indexname "index1"
+indexinfo[0].command[3].command "lowercase"
indexinfo[0].command[4].indexname "index1"
-indexinfo[0].command[4].command "lowercase"
-indexinfo[0].command[5].indexname "default"
-indexinfo[0].command[5].command "lowercase"
+indexinfo[0].command[4].command "stem:SHORTEST"
+indexinfo[0].command[5].indexname "index1"
+indexinfo[0].command[5].command "normalize"
indexinfo[0].command[6].indexname "index1"
-indexinfo[0].command[6].command "stem:SHORTEST"
-indexinfo[0].command[7].indexname "default"
-indexinfo[0].command[7].command "stem:SHORTEST"
-indexinfo[0].command[8].indexname "index1"
-indexinfo[0].command[8].command "normalize"
-indexinfo[0].command[9].indexname "default"
-indexinfo[0].command[9].command "normalize"
-indexinfo[0].command[10].indexname "attribute1"
-indexinfo[0].command[10].command "index"
-indexinfo[0].command[11].indexname "attribute1"
-indexinfo[0].command[11].command "attribute"
-indexinfo[0].command[12].indexname "attribute2"
-indexinfo[0].command[12].command "attribute"
-indexinfo[0].command[12].indexname "attribute2"
+indexinfo[0].command[6].command "plain-tokens"
+indexinfo[0].command[7].indexname "index2"
+indexinfo[0].command[7].command "index"
+indexinfo[0].command[8].indexname "index2"
+indexinfo[0].command[8].command "lowercase"
+indexinfo[0].command[9].indexname "index2"
+indexinfo[0].command[9].command "stem:SHORTEST"
+indexinfo[0].command[10].indexname "index2"
+indexinfo[0].command[10].command "normalize"
+indexinfo[0].command[11].indexname "index2"
+indexinfo[0].command[11].command "plain-tokens"
+indexinfo[0].command[12].indexname "attribute1"
indexinfo[0].command[12].command "index"
-indexinfo[0].command[14].indexname "rankfeatures"
+indexinfo[0].command[13].indexname "attribute1"
+indexinfo[0].command[13].command "attribute"
+indexinfo[0].command[14].indexname "attribute2"
indexinfo[0].command[14].command "index"
-indexinfo[0].command[15].indexname "summaryfeatures"
-indexinfo[0].command[15].command "index"
-indexinfo[0].command[2].indexname "index2"
-indexinfo[0].command[2].command "index"
-indexinfo[0].command[4].indexname "index2"
-indexinfo[0].command[4].command "lowercase"
-indexinfo[0].command[6].indexname "index2"
-indexinfo[0].command[6].command "stem:SHORTEST"
-indexinfo[0].command[8].indexname "index2"
-indexinfo[0].command[8].command "normalize"
+indexinfo[0].command[15].indexname "attribute2"
+indexinfo[0].command[15].command "attribute"
+indexinfo[0].command[16].indexname "rankfeatures"
+indexinfo[0].command[16].command "index"
+indexinfo[0].command[17].indexname "summaryfeatures"
+indexinfo[0].command[17].command "index"
+indexinfo[0].command[18].indexname "default"
+indexinfo[0].command[18].command "lowercase"
+indexinfo[0].command[19].indexname "default"
+indexinfo[0].command[19].command "index"
+indexinfo[0].command[20].indexname "default"
+indexinfo[0].command[20].command "plain-tokens"
+indexinfo[0].command[21].indexname "default"
+indexinfo[0].command[21].command "stem:SHORTEST"
+indexinfo[0].command[22].indexname "default"
+indexinfo[0].command[22].command "normalize" \ No newline at end of file
diff --git a/config-model/src/test/derived/emptydefault/index-info.cfg b/config-model/src/test/derived/emptydefault/index-info.cfg
index 0ec9439e13b..666ce9e58c0 100644
--- a/config-model/src/test/derived/emptydefault/index-info.cfg
+++ b/config-model/src/test/derived/emptydefault/index-info.cfg
@@ -11,15 +11,19 @@ indexinfo[0].command[4].indexname "one"
indexinfo[0].command[4].command "stem:SHORTEST"
indexinfo[0].command[5].indexname "one"
indexinfo[0].command[5].command "normalize"
-indexinfo[0].command[6].indexname "two"
-indexinfo[0].command[6].command "index"
+indexinfo[0].command[6].indexname "one"
+indexinfo[0].command[6].command "plain-tokens"
indexinfo[0].command[7].indexname "two"
-indexinfo[0].command[7].command "lowercase"
+indexinfo[0].command[7].command "index"
indexinfo[0].command[8].indexname "two"
-indexinfo[0].command[8].command "stem:SHORTEST"
+indexinfo[0].command[8].command "lowercase"
indexinfo[0].command[9].indexname "two"
-indexinfo[0].command[9].command "normalize"
-indexinfo[0].command[10].indexname "rankfeatures"
-indexinfo[0].command[10].command "index"
-indexinfo[0].command[11].indexname "summaryfeatures"
-indexinfo[0].command[11].command "index" \ No newline at end of file
+indexinfo[0].command[9].command "stem:SHORTEST"
+indexinfo[0].command[10].indexname "two"
+indexinfo[0].command[10].command "normalize"
+indexinfo[0].command[11].indexname "two"
+indexinfo[0].command[11].command "plain-tokens"
+indexinfo[0].command[12].indexname "rankfeatures"
+indexinfo[0].command[12].command "index"
+indexinfo[0].command[13].indexname "summaryfeatures"
+indexinfo[0].command[13].command "index" \ No newline at end of file
diff --git a/config-model/src/test/derived/id/index-info.cfg b/config-model/src/test/derived/id/index-info.cfg
index e54e8640d13..3853a9c6cac 100644
--- a/config-model/src/test/derived/id/index-info.cfg
+++ b/config-model/src/test/derived/id/index-info.cfg
@@ -8,38 +8,40 @@ indexinfo[0].command[2].command "index"
indexinfo[0].command[3].indexname "uri"
indexinfo[0].command[3].command "lowercase"
indexinfo[0].command[4].indexname "uri"
-indexinfo[0].command[4].command "fullurl"
-indexinfo[0].command[5].indexname "uri.uri"
+indexinfo[0].command[4].command "plain-tokens"
+indexinfo[0].command[5].indexname "uri"
indexinfo[0].command[5].command "fullurl"
indexinfo[0].command[6].indexname "uri.uri"
-indexinfo[0].command[6].command "lowercase"
-indexinfo[0].command[7].indexname "uri.path"
-indexinfo[0].command[7].command "fullurl"
+indexinfo[0].command[6].command "fullurl"
+indexinfo[0].command[7].indexname "uri.uri"
+indexinfo[0].command[7].command "lowercase"
indexinfo[0].command[8].indexname "uri.path"
-indexinfo[0].command[8].command "lowercase"
-indexinfo[0].command[9].indexname "uri.query"
-indexinfo[0].command[9].command "fullurl"
+indexinfo[0].command[8].command "fullurl"
+indexinfo[0].command[9].indexname "uri.path"
+indexinfo[0].command[9].command "lowercase"
indexinfo[0].command[10].indexname "uri.query"
-indexinfo[0].command[10].command "lowercase"
-indexinfo[0].command[11].indexname "uri.hostname"
-indexinfo[0].command[11].command "urlhost"
+indexinfo[0].command[10].command "fullurl"
+indexinfo[0].command[11].indexname "uri.query"
+indexinfo[0].command[11].command "lowercase"
indexinfo[0].command[12].indexname "uri.hostname"
-indexinfo[0].command[12].command "lowercase"
-indexinfo[0].command[13].indexname "rankfeatures"
-indexinfo[0].command[13].command "index"
-indexinfo[0].command[14].indexname "summaryfeatures"
+indexinfo[0].command[12].command "urlhost"
+indexinfo[0].command[13].indexname "uri.hostname"
+indexinfo[0].command[13].command "lowercase"
+indexinfo[0].command[14].indexname "rankfeatures"
indexinfo[0].command[14].command "index"
-indexinfo[0].command[15].indexname "uri.fragment"
+indexinfo[0].command[15].indexname "summaryfeatures"
indexinfo[0].command[15].command "index"
-indexinfo[0].command[16].indexname "uri.host"
+indexinfo[0].command[16].indexname "uri.fragment"
indexinfo[0].command[16].command "index"
-indexinfo[0].command[17].indexname "uri.hostname"
+indexinfo[0].command[17].indexname "uri.host"
indexinfo[0].command[17].command "index"
-indexinfo[0].command[18].indexname "uri.path"
+indexinfo[0].command[18].indexname "uri.hostname"
indexinfo[0].command[18].command "index"
-indexinfo[0].command[19].indexname "uri.port"
+indexinfo[0].command[19].indexname "uri.path"
indexinfo[0].command[19].command "index"
-indexinfo[0].command[20].indexname "uri.query"
+indexinfo[0].command[20].indexname "uri.port"
indexinfo[0].command[20].command "index"
-indexinfo[0].command[21].indexname "uri.scheme"
-indexinfo[0].command[21].command "index" \ No newline at end of file
+indexinfo[0].command[21].indexname "uri.query"
+indexinfo[0].command[21].command "index"
+indexinfo[0].command[22].indexname "uri.scheme"
+indexinfo[0].command[22].command "index" \ No newline at end of file
diff --git a/config-model/src/test/derived/indexinfo_fieldsets/index-info.cfg b/config-model/src/test/derived/indexinfo_fieldsets/index-info.cfg
index 34dbb7d5e5b..02a35fb1f2c 100644
--- a/config-model/src/test/derived/indexinfo_fieldsets/index-info.cfg
+++ b/config-model/src/test/derived/indexinfo_fieldsets/index-info.cfg
@@ -1,74 +1,75 @@
-indexinfo[].name "indexinfo_fieldsets"
-indexinfo[].command[].indexname "sddocname"
-indexinfo[].command[].command "index"
-indexinfo[].command[].indexname "sddocname"
-indexinfo[].command[].command "word"
-
-indexinfo[].command[].indexname "nostemming1"
-indexinfo[].command[].command "index"
-indexinfo[].command[].indexname "nostemming1"
-indexinfo[].command[].command "lowercase"
-indexinfo[].command[].indexname "nostemming1"
-indexinfo[].command[].command "normalize"
-
-indexinfo[].command[].indexname "nostemming2"
-indexinfo[].command[].command "index"
-indexinfo[].command[].indexname "nostemming2"
-indexinfo[].command[].command "lowercase"
-indexinfo[].command[].indexname "nostemming2"
-indexinfo[].command[].command "normalize"
-
-indexinfo[].command[].indexname "nonormalizing1"
-indexinfo[].command[].command "index"
-indexinfo[].command[].indexname "nonormalizing1"
-indexinfo[].command[].command "lowercase"
-indexinfo[].command[].indexname "nonormalizing1"
-indexinfo[].command[].command "stem:SHORTEST"
-
-indexinfo[].command[].indexname "nonormalizing2"
-indexinfo[].command[].command "index"
-indexinfo[].command[].indexname "nonormalizing2"
-indexinfo[].command[].command "lowercase"
-indexinfo[].command[].indexname "nonormalizing2"
-indexinfo[].command[].command "stem:SHORTEST"
-
-indexinfo[].command[].indexname "exact1"
-indexinfo[].command[].command "index"
-indexinfo[].command[].indexname "exact1"
-indexinfo[].command[].command "lowercase"
-indexinfo[].command[].indexname "exact1"
-indexinfo[].command[].command "exact @@"
-
-indexinfo[].command[].indexname "exact2"
-indexinfo[].command[].command "index"
-indexinfo[].command[].indexname "exact2"
-indexinfo[].command[].command "lowercase"
-indexinfo[].command[].indexname "exact2"
-indexinfo[].command[].command "exact @@"
-
-indexinfo[].command[].indexname "rankfeatures"
-indexinfo[].command[].command "index"
-
-indexinfo[].command[].indexname "summaryfeatures"
-indexinfo[].command[].command "index"
-
-indexinfo[].command[].indexname "nostemming"
-indexinfo[].command[].command "lowercase"
-indexinfo[].command[].indexname "nostemming"
-indexinfo[].command[].command "index"
-indexinfo[].command[].indexname "nostemming"
-indexinfo[].command[].command "normalize"
-
-indexinfo[].command[].indexname "nonormalizing"
-indexinfo[].command[].command "lowercase"
-indexinfo[].command[].indexname "nonormalizing"
-indexinfo[].command[].command "index"
-indexinfo[].command[].indexname "nonormalizing"
-indexinfo[].command[].command "stem:SHORTEST"
-
-indexinfo[].command[].indexname "exact"
-indexinfo[].command[].command "lowercase"
-indexinfo[].command[].indexname "exact"
-indexinfo[].command[].command "index"
-indexinfo[].command[].indexname "exact"
-indexinfo[].command[].command "exact @@"
+indexinfo[0].name "indexinfo_fieldsets"
+indexinfo[0].command[0].indexname "sddocname"
+indexinfo[0].command[0].command "index"
+indexinfo[0].command[1].indexname "sddocname"
+indexinfo[0].command[1].command "word"
+indexinfo[0].command[2].indexname "nostemming1"
+indexinfo[0].command[2].command "index"
+indexinfo[0].command[3].indexname "nostemming1"
+indexinfo[0].command[3].command "lowercase"
+indexinfo[0].command[4].indexname "nostemming1"
+indexinfo[0].command[4].command "normalize"
+indexinfo[0].command[5].indexname "nostemming1"
+indexinfo[0].command[5].command "plain-tokens"
+indexinfo[0].command[6].indexname "nostemming2"
+indexinfo[0].command[6].command "index"
+indexinfo[0].command[7].indexname "nostemming2"
+indexinfo[0].command[7].command "lowercase"
+indexinfo[0].command[8].indexname "nostemming2"
+indexinfo[0].command[8].command "normalize"
+indexinfo[0].command[9].indexname "nostemming2"
+indexinfo[0].command[9].command "plain-tokens"
+indexinfo[0].command[10].indexname "nonormalizing1"
+indexinfo[0].command[10].command "index"
+indexinfo[0].command[11].indexname "nonormalizing1"
+indexinfo[0].command[11].command "lowercase"
+indexinfo[0].command[12].indexname "nonormalizing1"
+indexinfo[0].command[12].command "stem:SHORTEST"
+indexinfo[0].command[13].indexname "nonormalizing1"
+indexinfo[0].command[13].command "plain-tokens"
+indexinfo[0].command[14].indexname "nonormalizing2"
+indexinfo[0].command[14].command "index"
+indexinfo[0].command[15].indexname "nonormalizing2"
+indexinfo[0].command[15].command "lowercase"
+indexinfo[0].command[16].indexname "nonormalizing2"
+indexinfo[0].command[16].command "stem:SHORTEST"
+indexinfo[0].command[17].indexname "nonormalizing2"
+indexinfo[0].command[17].command "plain-tokens"
+indexinfo[0].command[18].indexname "exact1"
+indexinfo[0].command[18].command "index"
+indexinfo[0].command[19].indexname "exact1"
+indexinfo[0].command[19].command "lowercase"
+indexinfo[0].command[20].indexname "exact1"
+indexinfo[0].command[20].command "exact @@"
+indexinfo[0].command[21].indexname "exact2"
+indexinfo[0].command[21].command "index"
+indexinfo[0].command[22].indexname "exact2"
+indexinfo[0].command[22].command "lowercase"
+indexinfo[0].command[23].indexname "exact2"
+indexinfo[0].command[23].command "exact @@"
+indexinfo[0].command[24].indexname "rankfeatures"
+indexinfo[0].command[24].command "index"
+indexinfo[0].command[25].indexname "summaryfeatures"
+indexinfo[0].command[25].command "index"
+indexinfo[0].command[26].indexname "nostemming"
+indexinfo[0].command[26].command "lowercase"
+indexinfo[0].command[27].indexname "nostemming"
+indexinfo[0].command[27].command "index"
+indexinfo[0].command[28].indexname "nostemming"
+indexinfo[0].command[28].command "plain-tokens"
+indexinfo[0].command[29].indexname "nostemming"
+indexinfo[0].command[29].command "normalize"
+indexinfo[0].command[30].indexname "nonormalizing"
+indexinfo[0].command[30].command "lowercase"
+indexinfo[0].command[31].indexname "nonormalizing"
+indexinfo[0].command[31].command "index"
+indexinfo[0].command[32].indexname "nonormalizing"
+indexinfo[0].command[32].command "plain-tokens"
+indexinfo[0].command[33].indexname "nonormalizing"
+indexinfo[0].command[33].command "stem:SHORTEST"
+indexinfo[0].command[34].indexname "exact"
+indexinfo[0].command[34].command "lowercase"
+indexinfo[0].command[35].indexname "exact"
+indexinfo[0].command[35].command "index"
+indexinfo[0].command[36].indexname "exact"
+indexinfo[0].command[36].command "exact @@" \ No newline at end of file
diff --git a/config-model/src/test/derived/indexinfo_lowercase/index-info.cfg b/config-model/src/test/derived/indexinfo_lowercase/index-info.cfg
index 027e7533004..6b79d5a4dc3 100644
--- a/config-model/src/test/derived/indexinfo_lowercase/index-info.cfg
+++ b/config-model/src/test/derived/indexinfo_lowercase/index-info.cfg
@@ -23,227 +23,267 @@ indexinfo[0].command[10].indexname "nc_index"
indexinfo[0].command[10].command "stem:SHORTEST"
indexinfo[0].command[11].indexname "nc_index"
indexinfo[0].command[11].command "normalize"
-indexinfo[0].command[12].indexname "nc_summary"
-indexinfo[0].command[12].command "index"
-indexinfo[0].command[13].indexname "lc_attribute"
+indexinfo[0].command[12].indexname "nc_index"
+indexinfo[0].command[12].command "plain-tokens"
+indexinfo[0].command[13].indexname "nc_summary"
indexinfo[0].command[13].command "index"
indexinfo[0].command[14].indexname "lc_attribute"
-indexinfo[0].command[14].command "lowercase"
+indexinfo[0].command[14].command "index"
indexinfo[0].command[15].indexname "lc_attribute"
-indexinfo[0].command[15].command "attribute"
+indexinfo[0].command[15].command "lowercase"
indexinfo[0].command[16].indexname "lc_attribute"
-indexinfo[0].command[16].command "word"
-indexinfo[0].command[17].indexname "lc_index"
-indexinfo[0].command[17].command "index"
+indexinfo[0].command[16].command "attribute"
+indexinfo[0].command[17].indexname "lc_attribute"
+indexinfo[0].command[17].command "word"
indexinfo[0].command[18].indexname "lc_index"
-indexinfo[0].command[18].command "lowercase"
+indexinfo[0].command[18].command "index"
indexinfo[0].command[19].indexname "lc_index"
-indexinfo[0].command[19].command "stem:SHORTEST"
+indexinfo[0].command[19].command "lowercase"
indexinfo[0].command[20].indexname "lc_index"
-indexinfo[0].command[20].command "normalize"
-indexinfo[0].command[21].indexname "lc_summary"
-indexinfo[0].command[21].command "index"
-indexinfo[0].command[22].indexname "lc_summary"
-indexinfo[0].command[22].command "lowercase"
-indexinfo[0].command[23].indexname "rankfeatures"
+indexinfo[0].command[20].command "stem:SHORTEST"
+indexinfo[0].command[21].indexname "lc_index"
+indexinfo[0].command[21].command "normalize"
+indexinfo[0].command[22].indexname "lc_index"
+indexinfo[0].command[22].command "plain-tokens"
+indexinfo[0].command[23].indexname "lc_summary"
indexinfo[0].command[23].command "index"
-indexinfo[0].command[24].indexname "summaryfeatures"
-indexinfo[0].command[24].command "index"
-indexinfo[0].command[25].indexname "lc_set1"
-indexinfo[0].command[25].command "lowercase"
-indexinfo[0].command[26].indexname "lc_set1"
-indexinfo[0].command[26].command "attribute"
+indexinfo[0].command[24].indexname "lc_summary"
+indexinfo[0].command[24].command "lowercase"
+indexinfo[0].command[25].indexname "rankfeatures"
+indexinfo[0].command[25].command "index"
+indexinfo[0].command[26].indexname "summaryfeatures"
+indexinfo[0].command[26].command "index"
indexinfo[0].command[27].indexname "lc_set1"
-indexinfo[0].command[27].command "index"
+indexinfo[0].command[27].command "lowercase"
indexinfo[0].command[28].indexname "lc_set1"
-indexinfo[0].command[28].command "word"
-indexinfo[0].command[29].indexname "lc_set2"
-indexinfo[0].command[29].command "lowercase"
-indexinfo[0].command[30].indexname "lc_set2"
-indexinfo[0].command[30].command "index"
+indexinfo[0].command[28].command "attribute"
+indexinfo[0].command[29].indexname "lc_set1"
+indexinfo[0].command[29].command "index"
+indexinfo[0].command[30].indexname "lc_set1"
+indexinfo[0].command[30].command "word"
indexinfo[0].command[31].indexname "lc_set2"
-indexinfo[0].command[31].command "stem:SHORTEST"
+indexinfo[0].command[31].command "lowercase"
indexinfo[0].command[32].indexname "lc_set2"
-indexinfo[0].command[32].command "normalize"
-indexinfo[0].command[33].indexname "lc_set3"
-indexinfo[0].command[33].command "lowercase"
-indexinfo[0].command[34].indexname "lc_set3"
-indexinfo[0].command[34].command "attribute"
-indexinfo[0].command[35].indexname "lc_set3"
-indexinfo[0].command[35].command "index"
-indexinfo[0].command[36].indexname "lc_set4"
+indexinfo[0].command[32].command "index"
+indexinfo[0].command[33].indexname "lc_set2"
+indexinfo[0].command[33].command "plain-tokens"
+indexinfo[0].command[34].indexname "lc_set2"
+indexinfo[0].command[34].command "stem:SHORTEST"
+indexinfo[0].command[35].indexname "lc_set2"
+indexinfo[0].command[35].command "normalize"
+indexinfo[0].command[36].indexname "lc_set3"
indexinfo[0].command[36].command "lowercase"
-indexinfo[0].command[37].indexname "lc_set4"
-indexinfo[0].command[37].command "index"
-indexinfo[0].command[38].indexname "lc_set4"
-indexinfo[0].command[38].command "stem:SHORTEST"
+indexinfo[0].command[37].indexname "lc_set3"
+indexinfo[0].command[37].command "attribute"
+indexinfo[0].command[38].indexname "lc_set3"
+indexinfo[0].command[38].command "index"
indexinfo[0].command[39].indexname "lc_set4"
-indexinfo[0].command[39].command "normalize"
-indexinfo[0].command[40].indexname "lc_set5"
-indexinfo[0].command[40].command "lowercase"
-indexinfo[0].command[41].indexname "lc_set5"
-indexinfo[0].command[41].command "attribute"
-indexinfo[0].command[42].indexname "lc_set5"
-indexinfo[0].command[42].command "index"
-indexinfo[0].command[43].indexname "lc_set5"
-indexinfo[0].command[43].command "word"
-indexinfo[0].command[44].indexname "lc_set6"
+indexinfo[0].command[39].command "lowercase"
+indexinfo[0].command[40].indexname "lc_set4"
+indexinfo[0].command[40].command "index"
+indexinfo[0].command[41].indexname "lc_set4"
+indexinfo[0].command[41].command "plain-tokens"
+indexinfo[0].command[42].indexname "lc_set4"
+indexinfo[0].command[42].command "stem:SHORTEST"
+indexinfo[0].command[43].indexname "lc_set4"
+indexinfo[0].command[43].command "normalize"
+indexinfo[0].command[44].indexname "lc_set5"
indexinfo[0].command[44].command "lowercase"
-indexinfo[0].command[45].indexname "lc_set6"
-indexinfo[0].command[45].command "index"
-indexinfo[0].command[46].indexname "lc_set6"
-indexinfo[0].command[46].command "stem:SHORTEST"
-indexinfo[0].command[47].indexname "lc_set6"
-indexinfo[0].command[47].command "normalize"
-indexinfo[0].command[48].indexname "lc_set7"
+indexinfo[0].command[45].indexname "lc_set5"
+indexinfo[0].command[45].command "attribute"
+indexinfo[0].command[46].indexname "lc_set5"
+indexinfo[0].command[46].command "index"
+indexinfo[0].command[47].indexname "lc_set5"
+indexinfo[0].command[47].command "word"
+indexinfo[0].command[48].indexname "lc_set6"
indexinfo[0].command[48].command "lowercase"
-indexinfo[0].command[49].indexname "lc_set7"
+indexinfo[0].command[49].indexname "lc_set6"
indexinfo[0].command[49].command "index"
-indexinfo[0].command[50].indexname "lc_set7"
-indexinfo[0].command[50].command "stem:SHORTEST"
-indexinfo[0].command[51].indexname "lc_set7"
-indexinfo[0].command[51].command "normalize"
-indexinfo[0].command[52].indexname "nc_set1"
-indexinfo[0].command[52].command "attribute"
-indexinfo[0].command[53].indexname "nc_set1"
-indexinfo[0].command[53].command "index"
-indexinfo[0].command[54].indexname "nc_set1"
-indexinfo[0].command[54].command "word"
-indexinfo[0].command[55].indexname "nc_set2"
-indexinfo[0].command[55].command "lowercase"
-indexinfo[0].command[56].indexname "nc_set2"
-indexinfo[0].command[56].command "index"
-indexinfo[0].command[57].indexname "nc_set2"
-indexinfo[0].command[57].command "stem:SHORTEST"
-indexinfo[0].command[58].indexname "nc_set2"
-indexinfo[0].command[58].command "normalize"
-indexinfo[0].command[59].indexname "nc_set3"
-indexinfo[0].command[59].command "attribute"
-indexinfo[0].command[60].indexname "nc_set3"
-indexinfo[0].command[60].command "index"
-indexinfo[0].command[61].indexname "nc_set4"
+indexinfo[0].command[50].indexname "lc_set6"
+indexinfo[0].command[50].command "plain-tokens"
+indexinfo[0].command[51].indexname "lc_set6"
+indexinfo[0].command[51].command "stem:SHORTEST"
+indexinfo[0].command[52].indexname "lc_set6"
+indexinfo[0].command[52].command "normalize"
+indexinfo[0].command[53].indexname "lc_set7"
+indexinfo[0].command[53].command "lowercase"
+indexinfo[0].command[54].indexname "lc_set7"
+indexinfo[0].command[54].command "index"
+indexinfo[0].command[55].indexname "lc_set7"
+indexinfo[0].command[55].command "plain-tokens"
+indexinfo[0].command[56].indexname "lc_set7"
+indexinfo[0].command[56].command "stem:SHORTEST"
+indexinfo[0].command[57].indexname "lc_set7"
+indexinfo[0].command[57].command "normalize"
+indexinfo[0].command[58].indexname "nc_set1"
+indexinfo[0].command[58].command "attribute"
+indexinfo[0].command[59].indexname "nc_set1"
+indexinfo[0].command[59].command "index"
+indexinfo[0].command[60].indexname "nc_set1"
+indexinfo[0].command[60].command "word"
+indexinfo[0].command[61].indexname "nc_set2"
indexinfo[0].command[61].command "lowercase"
-indexinfo[0].command[62].indexname "nc_set4"
+indexinfo[0].command[62].indexname "nc_set2"
indexinfo[0].command[62].command "index"
-indexinfo[0].command[63].indexname "nc_set4"
-indexinfo[0].command[63].command "stem:SHORTEST"
-indexinfo[0].command[64].indexname "nc_set4"
-indexinfo[0].command[64].command "normalize"
-indexinfo[0].command[65].indexname "nc_set5"
-indexinfo[0].command[65].command "attribute"
-indexinfo[0].command[66].indexname "nc_set5"
-indexinfo[0].command[66].command "index"
-indexinfo[0].command[67].indexname "nc_set5"
-indexinfo[0].command[67].command "word"
-indexinfo[0].command[68].indexname "nc_set6"
+indexinfo[0].command[63].indexname "nc_set2"
+indexinfo[0].command[63].command "plain-tokens"
+indexinfo[0].command[64].indexname "nc_set2"
+indexinfo[0].command[64].command "stem:SHORTEST"
+indexinfo[0].command[65].indexname "nc_set2"
+indexinfo[0].command[65].command "normalize"
+indexinfo[0].command[66].indexname "nc_set3"
+indexinfo[0].command[66].command "attribute"
+indexinfo[0].command[67].indexname "nc_set3"
+indexinfo[0].command[67].command "index"
+indexinfo[0].command[68].indexname "nc_set4"
indexinfo[0].command[68].command "lowercase"
-indexinfo[0].command[69].indexname "nc_set6"
+indexinfo[0].command[69].indexname "nc_set4"
indexinfo[0].command[69].command "index"
-indexinfo[0].command[70].indexname "nc_set6"
-indexinfo[0].command[70].command "stem:SHORTEST"
-indexinfo[0].command[71].indexname "nc_set6"
-indexinfo[0].command[71].command "normalize"
-indexinfo[0].command[72].indexname "nc_set7"
-indexinfo[0].command[72].command "lowercase"
-indexinfo[0].command[73].indexname "nc_set7"
-indexinfo[0].command[73].command "index"
-indexinfo[0].command[74].indexname "nc_set7"
-indexinfo[0].command[74].command "stem:SHORTEST"
-indexinfo[0].command[75].indexname "nc_set7"
-indexinfo[0].command[75].command "normalize"
-indexinfo[0].command[76].indexname "nc_set8"
+indexinfo[0].command[70].indexname "nc_set4"
+indexinfo[0].command[70].command "plain-tokens"
+indexinfo[0].command[71].indexname "nc_set4"
+indexinfo[0].command[71].command "stem:SHORTEST"
+indexinfo[0].command[72].indexname "nc_set4"
+indexinfo[0].command[72].command "normalize"
+indexinfo[0].command[73].indexname "nc_set5"
+indexinfo[0].command[73].command "attribute"
+indexinfo[0].command[74].indexname "nc_set5"
+indexinfo[0].command[74].command "index"
+indexinfo[0].command[75].indexname "nc_set5"
+indexinfo[0].command[75].command "word"
+indexinfo[0].command[76].indexname "nc_set6"
indexinfo[0].command[76].command "lowercase"
-indexinfo[0].command[77].indexname "nc_set8"
+indexinfo[0].command[77].indexname "nc_set6"
indexinfo[0].command[77].command "index"
-indexinfo[0].command[78].indexname "nc_set8"
-indexinfo[0].command[78].command "stem:SHORTEST"
-indexinfo[0].command[79].indexname "nc_set8"
-indexinfo[0].command[79].command "normalize"
-indexinfo[0].command[80].indexname "nc_set9"
-indexinfo[0].command[80].command "lowercase"
-indexinfo[0].command[81].indexname "nc_set9"
-indexinfo[0].command[81].command "index"
-indexinfo[0].command[82].indexname "nc_set9"
-indexinfo[0].command[82].command "stem:SHORTEST"
-indexinfo[0].command[83].indexname "nc_set9"
-indexinfo[0].command[83].command "normalize"
-indexinfo[0].command[84].indexname "nc_set10"
-indexinfo[0].command[84].command "lowercase"
-indexinfo[0].command[85].indexname "nc_set10"
-indexinfo[0].command[85].command "attribute"
-indexinfo[0].command[86].indexname "nc_set10"
-indexinfo[0].command[86].command "index"
-indexinfo[0].command[87].indexname "nc_set10"
-indexinfo[0].command[87].command "word"
-indexinfo[0].command[88].indexname "nc_set11"
-indexinfo[0].command[88].command "lowercase"
-indexinfo[0].command[89].indexname "nc_set11"
-indexinfo[0].command[89].command "attribute"
-indexinfo[0].command[90].indexname "nc_set11"
-indexinfo[0].command[90].command "index"
-indexinfo[0].command[91].indexname "nc_set11"
-indexinfo[0].command[91].command "word"
-indexinfo[0].command[92].indexname "nc_set12"
-indexinfo[0].command[92].command "lowercase"
-indexinfo[0].command[93].indexname "nc_set12"
-indexinfo[0].command[93].command "index"
-indexinfo[0].command[94].indexname "nc_set12"
+indexinfo[0].command[78].indexname "nc_set6"
+indexinfo[0].command[78].command "plain-tokens"
+indexinfo[0].command[79].indexname "nc_set6"
+indexinfo[0].command[79].command "stem:SHORTEST"
+indexinfo[0].command[80].indexname "nc_set6"
+indexinfo[0].command[80].command "normalize"
+indexinfo[0].command[81].indexname "nc_set7"
+indexinfo[0].command[81].command "lowercase"
+indexinfo[0].command[82].indexname "nc_set7"
+indexinfo[0].command[82].command "index"
+indexinfo[0].command[83].indexname "nc_set7"
+indexinfo[0].command[83].command "plain-tokens"
+indexinfo[0].command[84].indexname "nc_set7"
+indexinfo[0].command[84].command "stem:SHORTEST"
+indexinfo[0].command[85].indexname "nc_set7"
+indexinfo[0].command[85].command "normalize"
+indexinfo[0].command[86].indexname "nc_set8"
+indexinfo[0].command[86].command "lowercase"
+indexinfo[0].command[87].indexname "nc_set8"
+indexinfo[0].command[87].command "index"
+indexinfo[0].command[88].indexname "nc_set8"
+indexinfo[0].command[88].command "plain-tokens"
+indexinfo[0].command[89].indexname "nc_set8"
+indexinfo[0].command[89].command "stem:SHORTEST"
+indexinfo[0].command[90].indexname "nc_set8"
+indexinfo[0].command[90].command "normalize"
+indexinfo[0].command[91].indexname "nc_set9"
+indexinfo[0].command[91].command "lowercase"
+indexinfo[0].command[92].indexname "nc_set9"
+indexinfo[0].command[92].command "index"
+indexinfo[0].command[93].indexname "nc_set9"
+indexinfo[0].command[93].command "plain-tokens"
+indexinfo[0].command[94].indexname "nc_set9"
indexinfo[0].command[94].command "stem:SHORTEST"
-indexinfo[0].command[95].indexname "nc_set12"
+indexinfo[0].command[95].indexname "nc_set9"
indexinfo[0].command[95].command "normalize"
-indexinfo[0].command[96].indexname "nc_set13"
+indexinfo[0].command[96].indexname "nc_set10"
indexinfo[0].command[96].command "lowercase"
-indexinfo[0].command[97].indexname "nc_set13"
-indexinfo[0].command[97].command "index"
-indexinfo[0].command[98].indexname "nc_set13"
-indexinfo[0].command[98].command "stem:SHORTEST"
-indexinfo[0].command[99].indexname "nc_set13"
-indexinfo[0].command[99].command "normalize"
-indexinfo[0].command[100].indexname "nc_set14"
+indexinfo[0].command[97].indexname "nc_set10"
+indexinfo[0].command[97].command "attribute"
+indexinfo[0].command[98].indexname "nc_set10"
+indexinfo[0].command[98].command "index"
+indexinfo[0].command[99].indexname "nc_set10"
+indexinfo[0].command[99].command "word"
+indexinfo[0].command[100].indexname "nc_set11"
indexinfo[0].command[100].command "lowercase"
-indexinfo[0].command[101].indexname "nc_set14"
-indexinfo[0].command[101].command "index"
-indexinfo[0].command[102].indexname "nc_set14"
-indexinfo[0].command[102].command "stem:SHORTEST"
-indexinfo[0].command[103].indexname "nc_set14"
-indexinfo[0].command[103].command "normalize"
-indexinfo[0].command[104].indexname "nc_set15"
+indexinfo[0].command[101].indexname "nc_set11"
+indexinfo[0].command[101].command "attribute"
+indexinfo[0].command[102].indexname "nc_set11"
+indexinfo[0].command[102].command "index"
+indexinfo[0].command[103].indexname "nc_set11"
+indexinfo[0].command[103].command "word"
+indexinfo[0].command[104].indexname "nc_set12"
indexinfo[0].command[104].command "lowercase"
-indexinfo[0].command[105].indexname "nc_set15"
+indexinfo[0].command[105].indexname "nc_set12"
indexinfo[0].command[105].command "index"
-indexinfo[0].command[106].indexname "nc_set15"
-indexinfo[0].command[106].command "stem:SHORTEST"
-indexinfo[0].command[107].indexname "nc_set15"
-indexinfo[0].command[107].command "normalize"
-indexinfo[0].command[108].indexname "nc_set16"
-indexinfo[0].command[108].command "lowercase"
-indexinfo[0].command[109].indexname "nc_set16"
-indexinfo[0].command[109].command "index"
-indexinfo[0].command[110].indexname "nc_set16"
-indexinfo[0].command[110].command "stem:SHORTEST"
-indexinfo[0].command[111].indexname "nc_set16"
-indexinfo[0].command[111].command "normalize"
-indexinfo[0].command[112].indexname "nc_set17"
-indexinfo[0].command[112].command "lowercase"
-indexinfo[0].command[113].indexname "nc_set17"
-indexinfo[0].command[113].command "index"
-indexinfo[0].command[114].indexname "nc_set17"
-indexinfo[0].command[114].command "stem:SHORTEST"
-indexinfo[0].command[115].indexname "nc_set17"
-indexinfo[0].command[115].command "normalize"
-indexinfo[0].command[116].indexname "nc_set18"
-indexinfo[0].command[116].command "lowercase"
-indexinfo[0].command[117].indexname "nc_set18"
-indexinfo[0].command[117].command "index"
-indexinfo[0].command[118].indexname "nc_set18"
-indexinfo[0].command[118].command "stem:SHORTEST"
-indexinfo[0].command[119].indexname "nc_set18"
-indexinfo[0].command[119].command "normalize"
-indexinfo[0].command[120].indexname "nc_set19"
-indexinfo[0].command[120].command "lowercase"
-indexinfo[0].command[121].indexname "nc_set19"
-indexinfo[0].command[121].command "index"
-indexinfo[0].command[122].indexname "nc_set19"
+indexinfo[0].command[106].indexname "nc_set12"
+indexinfo[0].command[106].command "plain-tokens"
+indexinfo[0].command[107].indexname "nc_set12"
+indexinfo[0].command[107].command "stem:SHORTEST"
+indexinfo[0].command[108].indexname "nc_set12"
+indexinfo[0].command[108].command "normalize"
+indexinfo[0].command[109].indexname "nc_set13"
+indexinfo[0].command[109].command "lowercase"
+indexinfo[0].command[110].indexname "nc_set13"
+indexinfo[0].command[110].command "index"
+indexinfo[0].command[111].indexname "nc_set13"
+indexinfo[0].command[111].command "plain-tokens"
+indexinfo[0].command[112].indexname "nc_set13"
+indexinfo[0].command[112].command "stem:SHORTEST"
+indexinfo[0].command[113].indexname "nc_set13"
+indexinfo[0].command[113].command "normalize"
+indexinfo[0].command[114].indexname "nc_set14"
+indexinfo[0].command[114].command "lowercase"
+indexinfo[0].command[115].indexname "nc_set14"
+indexinfo[0].command[115].command "index"
+indexinfo[0].command[116].indexname "nc_set14"
+indexinfo[0].command[116].command "plain-tokens"
+indexinfo[0].command[117].indexname "nc_set14"
+indexinfo[0].command[117].command "stem:SHORTEST"
+indexinfo[0].command[118].indexname "nc_set14"
+indexinfo[0].command[118].command "normalize"
+indexinfo[0].command[119].indexname "nc_set15"
+indexinfo[0].command[119].command "lowercase"
+indexinfo[0].command[120].indexname "nc_set15"
+indexinfo[0].command[120].command "index"
+indexinfo[0].command[121].indexname "nc_set15"
+indexinfo[0].command[121].command "plain-tokens"
+indexinfo[0].command[122].indexname "nc_set15"
indexinfo[0].command[122].command "stem:SHORTEST"
-indexinfo[0].command[123].indexname "nc_set19"
-indexinfo[0].command[123].command "normalize" \ No newline at end of file
+indexinfo[0].command[123].indexname "nc_set15"
+indexinfo[0].command[123].command "normalize"
+indexinfo[0].command[124].indexname "nc_set16"
+indexinfo[0].command[124].command "lowercase"
+indexinfo[0].command[125].indexname "nc_set16"
+indexinfo[0].command[125].command "index"
+indexinfo[0].command[126].indexname "nc_set16"
+indexinfo[0].command[126].command "plain-tokens"
+indexinfo[0].command[127].indexname "nc_set16"
+indexinfo[0].command[127].command "stem:SHORTEST"
+indexinfo[0].command[128].indexname "nc_set16"
+indexinfo[0].command[128].command "normalize"
+indexinfo[0].command[129].indexname "nc_set17"
+indexinfo[0].command[129].command "lowercase"
+indexinfo[0].command[130].indexname "nc_set17"
+indexinfo[0].command[130].command "index"
+indexinfo[0].command[131].indexname "nc_set17"
+indexinfo[0].command[131].command "plain-tokens"
+indexinfo[0].command[132].indexname "nc_set17"
+indexinfo[0].command[132].command "stem:SHORTEST"
+indexinfo[0].command[133].indexname "nc_set17"
+indexinfo[0].command[133].command "normalize"
+indexinfo[0].command[134].indexname "nc_set18"
+indexinfo[0].command[134].command "lowercase"
+indexinfo[0].command[135].indexname "nc_set18"
+indexinfo[0].command[135].command "index"
+indexinfo[0].command[136].indexname "nc_set18"
+indexinfo[0].command[136].command "plain-tokens"
+indexinfo[0].command[137].indexname "nc_set18"
+indexinfo[0].command[137].command "stem:SHORTEST"
+indexinfo[0].command[138].indexname "nc_set18"
+indexinfo[0].command[138].command "normalize"
+indexinfo[0].command[139].indexname "nc_set19"
+indexinfo[0].command[139].command "lowercase"
+indexinfo[0].command[140].indexname "nc_set19"
+indexinfo[0].command[140].command "index"
+indexinfo[0].command[141].indexname "nc_set19"
+indexinfo[0].command[141].command "plain-tokens"
+indexinfo[0].command[142].indexname "nc_set19"
+indexinfo[0].command[142].command "stem:SHORTEST"
+indexinfo[0].command[143].indexname "nc_set19"
+indexinfo[0].command[143].command "normalize" \ No newline at end of file
diff --git a/config-model/src/test/derived/indexschema/index-info.cfg b/config-model/src/test/derived/indexschema/index-info.cfg
index ca5818b9b88..74dd2de6efb 100644
--- a/config-model/src/test/derived/indexschema/index-info.cfg
+++ b/config-model/src/test/derived/indexschema/index-info.cfg
@@ -11,301 +11,343 @@ indexinfo[0].command[4].indexname "sa"
indexinfo[0].command[4].command "stem:SHORTEST"
indexinfo[0].command[5].indexname "sa"
indexinfo[0].command[5].command "normalize"
-indexinfo[0].command[6].indexname "sb"
-indexinfo[0].command[6].command "index"
+indexinfo[0].command[6].indexname "sa"
+indexinfo[0].command[6].command "plain-tokens"
indexinfo[0].command[7].indexname "sb"
-indexinfo[0].command[7].command "lowercase"
+indexinfo[0].command[7].command "index"
indexinfo[0].command[8].indexname "sb"
-indexinfo[0].command[8].command "stem:SHORTEST"
+indexinfo[0].command[8].command "lowercase"
indexinfo[0].command[9].indexname "sb"
-indexinfo[0].command[9].command "normalize"
-indexinfo[0].command[10].indexname "sc"
-indexinfo[0].command[10].command "index"
-indexinfo[0].command[11].indexname "sc"
-indexinfo[0].command[11].command "lowercase"
+indexinfo[0].command[9].command "stem:SHORTEST"
+indexinfo[0].command[10].indexname "sb"
+indexinfo[0].command[10].command "normalize"
+indexinfo[0].command[11].indexname "sb"
+indexinfo[0].command[11].command "plain-tokens"
indexinfo[0].command[12].indexname "sc"
-indexinfo[0].command[12].command "stem:SHORTEST"
+indexinfo[0].command[12].command "index"
indexinfo[0].command[13].indexname "sc"
-indexinfo[0].command[13].command "normalize"
-indexinfo[0].command[14].indexname "sd"
-indexinfo[0].command[14].command "index"
-indexinfo[0].command[15].indexname "sd"
-indexinfo[0].command[15].command "lowercase"
-indexinfo[0].command[16].indexname "sd"
-indexinfo[0].command[16].command "stem:SHORTEST"
+indexinfo[0].command[13].command "lowercase"
+indexinfo[0].command[14].indexname "sc"
+indexinfo[0].command[14].command "stem:SHORTEST"
+indexinfo[0].command[15].indexname "sc"
+indexinfo[0].command[15].command "normalize"
+indexinfo[0].command[16].indexname "sc"
+indexinfo[0].command[16].command "plain-tokens"
indexinfo[0].command[17].indexname "sd"
-indexinfo[0].command[17].command "normalize"
+indexinfo[0].command[17].command "index"
indexinfo[0].command[18].indexname "sd"
-indexinfo[0].command[18].command "literal-boost"
-indexinfo[0].command[19].indexname "pos.x"
-indexinfo[0].command[19].command "index"
-indexinfo[0].command[20].indexname "pos.x"
-indexinfo[0].command[20].command "numerical"
-indexinfo[0].command[21].indexname "pos.y"
-indexinfo[0].command[21].command "index"
-indexinfo[0].command[22].indexname "pos.y"
-indexinfo[0].command[22].command "numerical"
-indexinfo[0].command[23].indexname "pos"
-indexinfo[0].command[23].command "default-position"
-indexinfo[0].command[24].indexname "pos"
-indexinfo[0].command[24].command "index"
-indexinfo[0].command[25].indexname "se"
+indexinfo[0].command[18].command "lowercase"
+indexinfo[0].command[19].indexname "sd"
+indexinfo[0].command[19].command "stem:SHORTEST"
+indexinfo[0].command[20].indexname "sd"
+indexinfo[0].command[20].command "normalize"
+indexinfo[0].command[21].indexname "sd"
+indexinfo[0].command[21].command "plain-tokens"
+indexinfo[0].command[22].indexname "sd"
+indexinfo[0].command[22].command "literal-boost"
+indexinfo[0].command[23].indexname "pos.x"
+indexinfo[0].command[23].command "index"
+indexinfo[0].command[24].indexname "pos.x"
+indexinfo[0].command[24].command "numerical"
+indexinfo[0].command[25].indexname "pos.y"
indexinfo[0].command[25].command "index"
-indexinfo[0].command[26].indexname "se"
-indexinfo[0].command[26].command "attribute"
-indexinfo[0].command[27].indexname "se"
-indexinfo[0].command[27].command "word"
-indexinfo[0].command[28].indexname "sf"
+indexinfo[0].command[26].indexname "pos.y"
+indexinfo[0].command[26].command "numerical"
+indexinfo[0].command[27].indexname "pos"
+indexinfo[0].command[27].command "default-position"
+indexinfo[0].command[28].indexname "pos"
indexinfo[0].command[28].command "index"
-indexinfo[0].command[29].indexname "sf"
-indexinfo[0].command[29].command "lowercase"
-indexinfo[0].command[30].indexname "sf"
-indexinfo[0].command[30].command "multivalue"
-indexinfo[0].command[31].indexname "sf"
-indexinfo[0].command[31].command "stem:SHORTEST"
+indexinfo[0].command[29].indexname "se"
+indexinfo[0].command[29].command "index"
+indexinfo[0].command[30].indexname "se"
+indexinfo[0].command[30].command "attribute"
+indexinfo[0].command[31].indexname "se"
+indexinfo[0].command[31].command "word"
indexinfo[0].command[32].indexname "sf"
-indexinfo[0].command[32].command "normalize"
-indexinfo[0].command[33].indexname "sg"
-indexinfo[0].command[33].command "index"
-indexinfo[0].command[34].indexname "sg"
-indexinfo[0].command[34].command "lowercase"
-indexinfo[0].command[35].indexname "sg"
-indexinfo[0].command[35].command "multivalue"
-indexinfo[0].command[36].indexname "sg"
-indexinfo[0].command[36].command "stem:SHORTEST"
-indexinfo[0].command[37].indexname "sg"
-indexinfo[0].command[37].command "normalize"
-indexinfo[0].command[38].indexname "sh"
+indexinfo[0].command[32].command "index"
+indexinfo[0].command[33].indexname "sf"
+indexinfo[0].command[33].command "lowercase"
+indexinfo[0].command[34].indexname "sf"
+indexinfo[0].command[34].command "multivalue"
+indexinfo[0].command[35].indexname "sf"
+indexinfo[0].command[35].command "stem:SHORTEST"
+indexinfo[0].command[36].indexname "sf"
+indexinfo[0].command[36].command "normalize"
+indexinfo[0].command[37].indexname "sf"
+indexinfo[0].command[37].command "plain-tokens"
+indexinfo[0].command[38].indexname "sg"
indexinfo[0].command[38].command "index"
-indexinfo[0].command[39].indexname "sh"
+indexinfo[0].command[39].indexname "sg"
indexinfo[0].command[39].command "lowercase"
-indexinfo[0].command[40].indexname "sh"
-indexinfo[0].command[40].command "fullurl"
-indexinfo[0].command[41].indexname "sh.sh"
-indexinfo[0].command[41].command "fullurl"
-indexinfo[0].command[42].indexname "sh.sh"
-indexinfo[0].command[42].command "lowercase"
-indexinfo[0].command[43].indexname "sh.path"
-indexinfo[0].command[43].command "fullurl"
-indexinfo[0].command[44].indexname "sh.path"
-indexinfo[0].command[44].command "lowercase"
-indexinfo[0].command[45].indexname "sh.query"
-indexinfo[0].command[45].command "fullurl"
-indexinfo[0].command[46].indexname "sh.query"
-indexinfo[0].command[46].command "lowercase"
-indexinfo[0].command[47].indexname "sh.hostname"
-indexinfo[0].command[47].command "urlhost"
-indexinfo[0].command[48].indexname "sh.hostname"
-indexinfo[0].command[48].command "lowercase"
-indexinfo[0].command[49].indexname "si"
-indexinfo[0].command[49].command "index"
-indexinfo[0].command[50].indexname "si"
-indexinfo[0].command[50].command "lowercase"
-indexinfo[0].command[51].indexname "si"
-indexinfo[0].command[51].command "stem:SHORTEST"
-indexinfo[0].command[52].indexname "si"
-indexinfo[0].command[52].command "normalize"
-indexinfo[0].command[53].indexname "exact1"
-indexinfo[0].command[53].command "index"
-indexinfo[0].command[54].indexname "exact1"
-indexinfo[0].command[54].command "lowercase"
-indexinfo[0].command[55].indexname "exact1"
-indexinfo[0].command[55].command "exact @@"
-indexinfo[0].command[56].indexname "exact2"
+indexinfo[0].command[40].indexname "sg"
+indexinfo[0].command[40].command "multivalue"
+indexinfo[0].command[41].indexname "sg"
+indexinfo[0].command[41].command "stem:SHORTEST"
+indexinfo[0].command[42].indexname "sg"
+indexinfo[0].command[42].command "normalize"
+indexinfo[0].command[43].indexname "sg"
+indexinfo[0].command[43].command "plain-tokens"
+indexinfo[0].command[44].indexname "sh"
+indexinfo[0].command[44].command "index"
+indexinfo[0].command[45].indexname "sh"
+indexinfo[0].command[45].command "lowercase"
+indexinfo[0].command[46].indexname "sh"
+indexinfo[0].command[46].command "plain-tokens"
+indexinfo[0].command[47].indexname "sh"
+indexinfo[0].command[47].command "fullurl"
+indexinfo[0].command[48].indexname "sh.sh"
+indexinfo[0].command[48].command "fullurl"
+indexinfo[0].command[49].indexname "sh.sh"
+indexinfo[0].command[49].command "lowercase"
+indexinfo[0].command[50].indexname "sh.path"
+indexinfo[0].command[50].command "fullurl"
+indexinfo[0].command[51].indexname "sh.path"
+indexinfo[0].command[51].command "lowercase"
+indexinfo[0].command[52].indexname "sh.query"
+indexinfo[0].command[52].command "fullurl"
+indexinfo[0].command[53].indexname "sh.query"
+indexinfo[0].command[53].command "lowercase"
+indexinfo[0].command[54].indexname "sh.hostname"
+indexinfo[0].command[54].command "urlhost"
+indexinfo[0].command[55].indexname "sh.hostname"
+indexinfo[0].command[55].command "lowercase"
+indexinfo[0].command[56].indexname "si"
indexinfo[0].command[56].command "index"
-indexinfo[0].command[57].indexname "exact2"
+indexinfo[0].command[57].indexname "si"
indexinfo[0].command[57].command "lowercase"
-indexinfo[0].command[58].indexname "exact2"
-indexinfo[0].command[58].command "exact @@"
-indexinfo[0].command[59].indexname "ia"
-indexinfo[0].command[59].command "index"
-indexinfo[0].command[60].indexname "ia"
-indexinfo[0].command[60].command "attribute"
-indexinfo[0].command[61].indexname "ia"
-indexinfo[0].command[61].command "numerical"
-indexinfo[0].command[62].indexname "ib"
-indexinfo[0].command[62].command "index"
-indexinfo[0].command[63].indexname "ib"
-indexinfo[0].command[63].command "attribute"
-indexinfo[0].command[64].indexname "ib"
-indexinfo[0].command[64].command "numerical"
-indexinfo[0].command[65].indexname "ic"
-indexinfo[0].command[65].command "index"
-indexinfo[0].command[66].indexname "ic"
-indexinfo[0].command[66].command "attribute"
-indexinfo[0].command[67].indexname "ic"
-indexinfo[0].command[67].command "numerical"
-indexinfo[0].command[68].indexname "nostemstring1"
-indexinfo[0].command[68].command "index"
-indexinfo[0].command[69].indexname "nostemstring1"
-indexinfo[0].command[69].command "lowercase"
-indexinfo[0].command[70].indexname "nostemstring1"
-indexinfo[0].command[70].command "normalize"
-indexinfo[0].command[71].indexname "nostemstring2"
-indexinfo[0].command[71].command "index"
-indexinfo[0].command[72].indexname "nostemstring2"
-indexinfo[0].command[72].command "lowercase"
-indexinfo[0].command[73].indexname "nostemstring2"
-indexinfo[0].command[73].command "normalize"
-indexinfo[0].command[74].indexname "nostemstring3"
-indexinfo[0].command[74].command "index"
-indexinfo[0].command[75].indexname "nostemstring3"
-indexinfo[0].command[75].command "lowercase"
-indexinfo[0].command[76].indexname "nostemstring3"
-indexinfo[0].command[76].command "normalize"
-indexinfo[0].command[77].indexname "nostemstring4"
-indexinfo[0].command[77].command "index"
-indexinfo[0].command[78].indexname "nostemstring4"
-indexinfo[0].command[78].command "lowercase"
-indexinfo[0].command[79].indexname "nostemstring4"
-indexinfo[0].command[79].command "normalize"
-indexinfo[0].command[80].indexname "fs9"
+indexinfo[0].command[58].indexname "si"
+indexinfo[0].command[58].command "stem:SHORTEST"
+indexinfo[0].command[59].indexname "si"
+indexinfo[0].command[59].command "normalize"
+indexinfo[0].command[60].indexname "si"
+indexinfo[0].command[60].command "plain-tokens"
+indexinfo[0].command[61].indexname "exact1"
+indexinfo[0].command[61].command "index"
+indexinfo[0].command[62].indexname "exact1"
+indexinfo[0].command[62].command "lowercase"
+indexinfo[0].command[63].indexname "exact1"
+indexinfo[0].command[63].command "exact @@"
+indexinfo[0].command[64].indexname "exact2"
+indexinfo[0].command[64].command "index"
+indexinfo[0].command[65].indexname "exact2"
+indexinfo[0].command[65].command "lowercase"
+indexinfo[0].command[66].indexname "exact2"
+indexinfo[0].command[66].command "exact @@"
+indexinfo[0].command[67].indexname "ia"
+indexinfo[0].command[67].command "index"
+indexinfo[0].command[68].indexname "ia"
+indexinfo[0].command[68].command "attribute"
+indexinfo[0].command[69].indexname "ia"
+indexinfo[0].command[69].command "numerical"
+indexinfo[0].command[70].indexname "ib"
+indexinfo[0].command[70].command "index"
+indexinfo[0].command[71].indexname "ib"
+indexinfo[0].command[71].command "attribute"
+indexinfo[0].command[72].indexname "ib"
+indexinfo[0].command[72].command "numerical"
+indexinfo[0].command[73].indexname "ic"
+indexinfo[0].command[73].command "index"
+indexinfo[0].command[74].indexname "ic"
+indexinfo[0].command[74].command "attribute"
+indexinfo[0].command[75].indexname "ic"
+indexinfo[0].command[75].command "numerical"
+indexinfo[0].command[76].indexname "nostemstring1"
+indexinfo[0].command[76].command "index"
+indexinfo[0].command[77].indexname "nostemstring1"
+indexinfo[0].command[77].command "lowercase"
+indexinfo[0].command[78].indexname "nostemstring1"
+indexinfo[0].command[78].command "normalize"
+indexinfo[0].command[79].indexname "nostemstring1"
+indexinfo[0].command[79].command "plain-tokens"
+indexinfo[0].command[80].indexname "nostemstring2"
indexinfo[0].command[80].command "index"
-indexinfo[0].command[81].indexname "fs9"
+indexinfo[0].command[81].indexname "nostemstring2"
indexinfo[0].command[81].command "lowercase"
-indexinfo[0].command[82].indexname "fs9"
-indexinfo[0].command[82].command "stem:SHORTEST"
-indexinfo[0].command[83].indexname "fs9"
-indexinfo[0].command[83].command "normalize"
-indexinfo[0].command[84].indexname "f10.text"
+indexinfo[0].command[82].indexname "nostemstring2"
+indexinfo[0].command[82].command "normalize"
+indexinfo[0].command[83].indexname "nostemstring2"
+indexinfo[0].command[83].command "plain-tokens"
+indexinfo[0].command[84].indexname "nostemstring3"
indexinfo[0].command[84].command "index"
-indexinfo[0].command[85].indexname "f10.text"
+indexinfo[0].command[85].indexname "nostemstring3"
indexinfo[0].command[85].command "lowercase"
-indexinfo[0].command[86].indexname "f10.text"
-indexinfo[0].command[86].command "stem:SHORTEST"
-indexinfo[0].command[87].indexname "f10.text"
-indexinfo[0].command[87].command "normalize"
-indexinfo[0].command[88].indexname "f10.name"
+indexinfo[0].command[86].indexname "nostemstring3"
+indexinfo[0].command[86].command "normalize"
+indexinfo[0].command[87].indexname "nostemstring3"
+indexinfo[0].command[87].command "plain-tokens"
+indexinfo[0].command[88].indexname "nostemstring4"
indexinfo[0].command[88].command "index"
-indexinfo[0].command[89].indexname "f10"
-indexinfo[0].command[89].command "index"
-indexinfo[0].command[90].indexname "f10"
-indexinfo[0].command[90].command "multivalue"
-indexinfo[0].command[91].indexname "pos.distance"
-indexinfo[0].command[91].command "index"
-indexinfo[0].command[92].indexname "pos.distance"
-indexinfo[0].command[92].command "numerical"
-indexinfo[0].command[93].indexname "pos.position"
-indexinfo[0].command[93].command "index"
-indexinfo[0].command[94].indexname "pos.position"
-indexinfo[0].command[94].command "multivalue"
-indexinfo[0].command[95].indexname "pos_zcurve"
-indexinfo[0].command[95].command "index"
-indexinfo[0].command[96].indexname "pos_zcurve"
-indexinfo[0].command[96].command "attribute"
-indexinfo[0].command[97].indexname "pos_zcurve"
-indexinfo[0].command[97].command "fast-search"
-indexinfo[0].command[98].indexname "pos_zcurve"
-indexinfo[0].command[98].command "numerical"
-indexinfo[0].command[99].indexname "rankfeatures"
-indexinfo[0].command[99].command "index"
-indexinfo[0].command[100].indexname "sd_literal"
-indexinfo[0].command[100].command "index"
-indexinfo[0].command[101].indexname "sd_literal"
-indexinfo[0].command[101].command "lowercase"
-indexinfo[0].command[102].indexname "searchfield1"
+indexinfo[0].command[89].indexname "nostemstring4"
+indexinfo[0].command[89].command "lowercase"
+indexinfo[0].command[90].indexname "nostemstring4"
+indexinfo[0].command[90].command "normalize"
+indexinfo[0].command[91].indexname "nostemstring4"
+indexinfo[0].command[91].command "plain-tokens"
+indexinfo[0].command[92].indexname "fs9"
+indexinfo[0].command[92].command "index"
+indexinfo[0].command[93].indexname "fs9"
+indexinfo[0].command[93].command "lowercase"
+indexinfo[0].command[94].indexname "fs9"
+indexinfo[0].command[94].command "stem:SHORTEST"
+indexinfo[0].command[95].indexname "fs9"
+indexinfo[0].command[95].command "normalize"
+indexinfo[0].command[96].indexname "fs9"
+indexinfo[0].command[96].command "plain-tokens"
+indexinfo[0].command[97].indexname "f10.text"
+indexinfo[0].command[97].command "index"
+indexinfo[0].command[98].indexname "f10.text"
+indexinfo[0].command[98].command "lowercase"
+indexinfo[0].command[99].indexname "f10.text"
+indexinfo[0].command[99].command "stem:SHORTEST"
+indexinfo[0].command[100].indexname "f10.text"
+indexinfo[0].command[100].command "normalize"
+indexinfo[0].command[101].indexname "f10.text"
+indexinfo[0].command[101].command "plain-tokens"
+indexinfo[0].command[102].indexname "f10.name"
indexinfo[0].command[102].command "index"
-indexinfo[0].command[103].indexname "searchfield2"
+indexinfo[0].command[103].indexname "f10"
indexinfo[0].command[103].command "index"
-indexinfo[0].command[104].indexname "searchfield2"
-indexinfo[0].command[104].command "numerical"
-indexinfo[0].command[105].indexname "sh.fragment"
+indexinfo[0].command[104].indexname "f10"
+indexinfo[0].command[104].command "multivalue"
+indexinfo[0].command[105].indexname "pos.distance"
indexinfo[0].command[105].command "index"
-indexinfo[0].command[106].indexname "sh.host"
-indexinfo[0].command[106].command "index"
-indexinfo[0].command[107].indexname "sh.hostname"
+indexinfo[0].command[106].indexname "pos.distance"
+indexinfo[0].command[106].command "numerical"
+indexinfo[0].command[107].indexname "pos.position"
indexinfo[0].command[107].command "index"
-indexinfo[0].command[108].indexname "sh.path"
-indexinfo[0].command[108].command "index"
-indexinfo[0].command[109].indexname "sh.port"
+indexinfo[0].command[108].indexname "pos.position"
+indexinfo[0].command[108].command "multivalue"
+indexinfo[0].command[109].indexname "pos_zcurve"
indexinfo[0].command[109].command "index"
-indexinfo[0].command[110].indexname "sh.query"
-indexinfo[0].command[110].command "index"
-indexinfo[0].command[111].indexname "sh.scheme"
-indexinfo[0].command[111].command "index"
-indexinfo[0].command[112].indexname "summaryfeatures"
-indexinfo[0].command[112].command "index"
-indexinfo[0].command[113].indexname "sa"
-indexinfo[0].command[113].command "dynteaser"
-indexinfo[0].command[114].indexname "fs1"
-indexinfo[0].command[114].command "lowercase"
-indexinfo[0].command[115].indexname "fs1"
-indexinfo[0].command[115].command "multivalue"
-indexinfo[0].command[116].indexname "fs1"
-indexinfo[0].command[116].command "index"
-indexinfo[0].command[117].indexname "fs1"
-indexinfo[0].command[117].command "stem:SHORTEST"
-indexinfo[0].command[118].indexname "fs1"
-indexinfo[0].command[118].command "normalize"
-indexinfo[0].command[119].indexname "fs2"
-indexinfo[0].command[119].command "lowercase"
-indexinfo[0].command[120].indexname "fs2"
+indexinfo[0].command[110].indexname "pos_zcurve"
+indexinfo[0].command[110].command "attribute"
+indexinfo[0].command[111].indexname "pos_zcurve"
+indexinfo[0].command[111].command "fast-search"
+indexinfo[0].command[112].indexname "pos_zcurve"
+indexinfo[0].command[112].command "numerical"
+indexinfo[0].command[113].indexname "rankfeatures"
+indexinfo[0].command[113].command "index"
+indexinfo[0].command[114].indexname "sd_literal"
+indexinfo[0].command[114].command "index"
+indexinfo[0].command[115].indexname "sd_literal"
+indexinfo[0].command[115].command "lowercase"
+indexinfo[0].command[116].indexname "sd_literal"
+indexinfo[0].command[116].command "plain-tokens"
+indexinfo[0].command[117].indexname "searchfield1"
+indexinfo[0].command[117].command "index"
+indexinfo[0].command[118].indexname "searchfield2"
+indexinfo[0].command[118].command "index"
+indexinfo[0].command[119].indexname "searchfield2"
+indexinfo[0].command[119].command "numerical"
+indexinfo[0].command[120].indexname "sh.fragment"
indexinfo[0].command[120].command "index"
-indexinfo[0].command[121].indexname "fs2"
-indexinfo[0].command[121].command "stem:SHORTEST"
-indexinfo[0].command[122].indexname "fs2"
-indexinfo[0].command[122].command "normalize"
-indexinfo[0].command[123].indexname "fs3"
-indexinfo[0].command[123].command "attribute"
-indexinfo[0].command[124].indexname "fs3"
+indexinfo[0].command[121].indexname "sh.host"
+indexinfo[0].command[121].command "index"
+indexinfo[0].command[122].indexname "sh.hostname"
+indexinfo[0].command[122].command "index"
+indexinfo[0].command[123].indexname "sh.path"
+indexinfo[0].command[123].command "index"
+indexinfo[0].command[124].indexname "sh.port"
indexinfo[0].command[124].command "index"
-indexinfo[0].command[125].indexname "fs4"
-indexinfo[0].command[125].command "lowercase"
-indexinfo[0].command[126].indexname "fs4"
+indexinfo[0].command[125].indexname "sh.query"
+indexinfo[0].command[125].command "index"
+indexinfo[0].command[126].indexname "sh.scheme"
indexinfo[0].command[126].command "index"
-indexinfo[0].command[127].indexname "fs4"
-indexinfo[0].command[127].command "stem:SHORTEST"
-indexinfo[0].command[128].indexname "fs4"
-indexinfo[0].command[128].command "normalize"
-indexinfo[0].command[129].indexname "onlyattrib"
-indexinfo[0].command[129].command "attribute"
-indexinfo[0].command[130].indexname "onlyattrib"
-indexinfo[0].command[130].command "index"
-indexinfo[0].command[131].indexname "onlyattrib"
-indexinfo[0].command[131].command "word"
-indexinfo[0].command[132].indexname "exactfields"
-indexinfo[0].command[132].command "lowercase"
-indexinfo[0].command[133].indexname "exactfields"
-indexinfo[0].command[133].command "index"
-indexinfo[0].command[134].indexname "exactfields"
-indexinfo[0].command[134].command "exact @@"
-indexinfo[0].command[135].indexname "exactexplicit"
-indexinfo[0].command[135].command "exact ARNOLD"
-indexinfo[0].command[136].indexname "exactexplicit"
-indexinfo[0].command[136].command "dynteaser"
-indexinfo[0].command[137].indexname "exactexplicit2"
-indexinfo[0].command[137].command "lowercase"
-indexinfo[0].command[138].indexname "exactexplicit2"
-indexinfo[0].command[138].command "index"
-indexinfo[0].command[139].indexname "exactexplicit2"
-indexinfo[0].command[139].command "exact Arnold"
-indexinfo[0].command[140].indexname "gram"
-indexinfo[0].command[140].command "lowercase"
-indexinfo[0].command[141].indexname "gram"
+indexinfo[0].command[127].indexname "summaryfeatures"
+indexinfo[0].command[127].command "index"
+indexinfo[0].command[128].indexname "sa"
+indexinfo[0].command[128].command "dynteaser"
+indexinfo[0].command[129].indexname "fs1"
+indexinfo[0].command[129].command "lowercase"
+indexinfo[0].command[130].indexname "fs1"
+indexinfo[0].command[130].command "multivalue"
+indexinfo[0].command[131].indexname "fs1"
+indexinfo[0].command[131].command "index"
+indexinfo[0].command[132].indexname "fs1"
+indexinfo[0].command[132].command "plain-tokens"
+indexinfo[0].command[133].indexname "fs1"
+indexinfo[0].command[133].command "stem:SHORTEST"
+indexinfo[0].command[134].indexname "fs1"
+indexinfo[0].command[134].command "normalize"
+indexinfo[0].command[135].indexname "fs2"
+indexinfo[0].command[135].command "lowercase"
+indexinfo[0].command[136].indexname "fs2"
+indexinfo[0].command[136].command "index"
+indexinfo[0].command[137].indexname "fs2"
+indexinfo[0].command[137].command "plain-tokens"
+indexinfo[0].command[138].indexname "fs2"
+indexinfo[0].command[138].command "stem:SHORTEST"
+indexinfo[0].command[139].indexname "fs2"
+indexinfo[0].command[139].command "normalize"
+indexinfo[0].command[140].indexname "fs3"
+indexinfo[0].command[140].command "attribute"
+indexinfo[0].command[141].indexname "fs3"
indexinfo[0].command[141].command "index"
-indexinfo[0].command[142].indexname "gram"
-indexinfo[0].command[142].command "stem:SHORTEST"
-indexinfo[0].command[143].indexname "gram"
-indexinfo[0].command[143].command "normalize"
-indexinfo[0].command[144].indexname "gram"
-indexinfo[0].command[144].command "ngram 2"
-indexinfo[0].command[145].indexname "nostem1"
-indexinfo[0].command[145].command "lowercase"
-indexinfo[0].command[146].indexname "nostem1"
-indexinfo[0].command[146].command "index"
-indexinfo[0].command[147].indexname "nostem1"
-indexinfo[0].command[147].command "normalize"
-indexinfo[0].command[148].indexname "nostem2"
-indexinfo[0].command[148].command "lowercase"
-indexinfo[0].command[149].indexname "nostem2"
-indexinfo[0].command[149].command "index"
-indexinfo[0].command[150].indexname "nostem2"
-indexinfo[0].command[150].command "normalize"
-indexinfo[0].command[151].indexname "default"
-indexinfo[0].command[151].command "lowercase"
-indexinfo[0].command[152].indexname "default"
-indexinfo[0].command[152].command "index"
-indexinfo[0].command[153].indexname "default"
-indexinfo[0].command[153].command "stem:SHORTEST"
-indexinfo[0].command[154].indexname "default"
-indexinfo[0].command[154].command "normalize" \ No newline at end of file
+indexinfo[0].command[142].indexname "fs4"
+indexinfo[0].command[142].command "lowercase"
+indexinfo[0].command[143].indexname "fs4"
+indexinfo[0].command[143].command "index"
+indexinfo[0].command[144].indexname "fs4"
+indexinfo[0].command[144].command "plain-tokens"
+indexinfo[0].command[145].indexname "fs4"
+indexinfo[0].command[145].command "stem:SHORTEST"
+indexinfo[0].command[146].indexname "fs4"
+indexinfo[0].command[146].command "normalize"
+indexinfo[0].command[147].indexname "onlyattrib"
+indexinfo[0].command[147].command "attribute"
+indexinfo[0].command[148].indexname "onlyattrib"
+indexinfo[0].command[148].command "index"
+indexinfo[0].command[149].indexname "onlyattrib"
+indexinfo[0].command[149].command "word"
+indexinfo[0].command[150].indexname "exactfields"
+indexinfo[0].command[150].command "lowercase"
+indexinfo[0].command[151].indexname "exactfields"
+indexinfo[0].command[151].command "index"
+indexinfo[0].command[152].indexname "exactfields"
+indexinfo[0].command[152].command "exact @@"
+indexinfo[0].command[153].indexname "exactexplicit"
+indexinfo[0].command[153].command "exact ARNOLD"
+indexinfo[0].command[154].indexname "exactexplicit"
+indexinfo[0].command[154].command "dynteaser"
+indexinfo[0].command[155].indexname "exactexplicit2"
+indexinfo[0].command[155].command "lowercase"
+indexinfo[0].command[156].indexname "exactexplicit2"
+indexinfo[0].command[156].command "index"
+indexinfo[0].command[157].indexname "exactexplicit2"
+indexinfo[0].command[157].command "exact Arnold"
+indexinfo[0].command[158].indexname "gram"
+indexinfo[0].command[158].command "lowercase"
+indexinfo[0].command[159].indexname "gram"
+indexinfo[0].command[159].command "index"
+indexinfo[0].command[160].indexname "gram"
+indexinfo[0].command[160].command "stem:SHORTEST"
+indexinfo[0].command[161].indexname "gram"
+indexinfo[0].command[161].command "normalize"
+indexinfo[0].command[162].indexname "gram"
+indexinfo[0].command[162].command "ngram 2"
+indexinfo[0].command[163].indexname "nostem1"
+indexinfo[0].command[163].command "lowercase"
+indexinfo[0].command[164].indexname "nostem1"
+indexinfo[0].command[164].command "index"
+indexinfo[0].command[165].indexname "nostem1"
+indexinfo[0].command[165].command "plain-tokens"
+indexinfo[0].command[166].indexname "nostem1"
+indexinfo[0].command[166].command "normalize"
+indexinfo[0].command[167].indexname "nostem2"
+indexinfo[0].command[167].command "lowercase"
+indexinfo[0].command[168].indexname "nostem2"
+indexinfo[0].command[168].command "index"
+indexinfo[0].command[169].indexname "nostem2"
+indexinfo[0].command[169].command "plain-tokens"
+indexinfo[0].command[170].indexname "nostem2"
+indexinfo[0].command[170].command "normalize"
+indexinfo[0].command[171].indexname "default"
+indexinfo[0].command[171].command "lowercase"
+indexinfo[0].command[172].indexname "default"
+indexinfo[0].command[172].command "index"
+indexinfo[0].command[173].indexname "default"
+indexinfo[0].command[173].command "plain-tokens"
+indexinfo[0].command[174].indexname "default"
+indexinfo[0].command[174].command "stem:SHORTEST"
+indexinfo[0].command[175].indexname "default"
+indexinfo[0].command[175].command "normalize" \ No newline at end of file
diff --git a/config-model/src/test/derived/indexswitches/index-info.cfg b/config-model/src/test/derived/indexswitches/index-info.cfg
index 6387551ec98..0b3588dc128 100644
--- a/config-model/src/test/derived/indexswitches/index-info.cfg
+++ b/config-model/src/test/derived/indexswitches/index-info.cfg
@@ -11,31 +11,39 @@ indexinfo[0].command[4].indexname "title"
indexinfo[0].command[4].command "stem:SHORTEST"
indexinfo[0].command[5].indexname "title"
indexinfo[0].command[5].command "normalize"
-indexinfo[0].command[6].indexname "descr"
-indexinfo[0].command[6].command "index"
+indexinfo[0].command[6].indexname "title"
+indexinfo[0].command[6].command "plain-tokens"
indexinfo[0].command[7].indexname "descr"
-indexinfo[0].command[7].command "lowercase"
+indexinfo[0].command[7].command "index"
indexinfo[0].command[8].indexname "descr"
-indexinfo[0].command[8].command "stem:SHORTEST"
+indexinfo[0].command[8].command "lowercase"
indexinfo[0].command[9].indexname "descr"
-indexinfo[0].command[9].command "normalize"
-indexinfo[0].command[10].indexname "source_src"
-indexinfo[0].command[10].command "index"
-indexinfo[0].command[11].indexname "rankfeatures"
-indexinfo[0].command[11].command "index"
-indexinfo[0].command[12].indexname "source"
+indexinfo[0].command[9].command "stem:SHORTEST"
+indexinfo[0].command[10].indexname "descr"
+indexinfo[0].command[10].command "normalize"
+indexinfo[0].command[11].indexname "descr"
+indexinfo[0].command[11].command "plain-tokens"
+indexinfo[0].command[12].indexname "source_src"
indexinfo[0].command[12].command "index"
-indexinfo[0].command[13].indexname "source"
-indexinfo[0].command[13].command "lowercase"
+indexinfo[0].command[13].indexname "rankfeatures"
+indexinfo[0].command[13].command "index"
indexinfo[0].command[14].indexname "source"
-indexinfo[0].command[14].command "normalize"
-indexinfo[0].command[15].indexname "summaryfeatures"
-indexinfo[0].command[15].command "index"
-indexinfo[0].command[16].indexname "default"
-indexinfo[0].command[16].command "lowercase"
-indexinfo[0].command[17].indexname "default"
-indexinfo[0].command[17].command "index"
-indexinfo[0].command[18].indexname "default"
-indexinfo[0].command[18].command "stem:SHORTEST"
+indexinfo[0].command[14].command "index"
+indexinfo[0].command[15].indexname "source"
+indexinfo[0].command[15].command "lowercase"
+indexinfo[0].command[16].indexname "source"
+indexinfo[0].command[16].command "normalize"
+indexinfo[0].command[17].indexname "source"
+indexinfo[0].command[17].command "plain-tokens"
+indexinfo[0].command[18].indexname "summaryfeatures"
+indexinfo[0].command[18].command "index"
indexinfo[0].command[19].indexname "default"
-indexinfo[0].command[19].command "normalize" \ No newline at end of file
+indexinfo[0].command[19].command "lowercase"
+indexinfo[0].command[20].indexname "default"
+indexinfo[0].command[20].command "index"
+indexinfo[0].command[21].indexname "default"
+indexinfo[0].command[21].command "plain-tokens"
+indexinfo[0].command[22].indexname "default"
+indexinfo[0].command[22].command "stem:SHORTEST"
+indexinfo[0].command[23].indexname "default"
+indexinfo[0].command[23].command "normalize" \ No newline at end of file
diff --git a/config-model/src/test/derived/inheritance/attributes.cfg b/config-model/src/test/derived/inheritance/attributes.cfg
index b9870b21975..03b1dd0af5f 100644
--- a/config-model/src/test/derived/inheritance/attributes.cfg
+++ b/config-model/src/test/derived/inheritance/attributes.cfg
@@ -1,10 +1,57 @@
-attribute[3]
-attribute[onlygrandparent].collectiontype SINGLE
-attribute[onlygrandparent].datatype INT32
-attribute[onlygrandparent].name "onlygrandparent"
-attribute[onlymother].collectiontype SINGLE
-attribute[onlymother].datatype STRING
-attribute[onlymother].name "onlymother"
-attribute[overridden].collectiontype SINGLE
-attribute[overridden].datatype INT32
-attribute[overridden].name "overridden"
+attribute[0].name "onlygrandparent"
+attribute[0].datatype INT32
+attribute[0].collectiontype SINGLE
+attribute[0].removeifzero false
+attribute[0].createifnonexistent false
+attribute[0].fastsearch false
+attribute[0].huge false
+attribute[0].sortascending true
+attribute[0].sortfunction UCA
+attribute[0].sortstrength PRIMARY
+attribute[0].sortlocale ""
+attribute[0].enablebitvectors false
+attribute[0].enableonlybitvector false
+attribute[0].fastaccess false
+attribute[0].arity 8
+attribute[0].lowerbound -9223372036854775808
+attribute[0].upperbound 9223372036854775807
+attribute[0].densepostinglistthreshold 0.4
+attribute[0].tensortype ""
+attribute[1].name "overridden"
+attribute[1].datatype INT32
+attribute[1].collectiontype SINGLE
+attribute[1].removeifzero false
+attribute[1].createifnonexistent false
+attribute[1].fastsearch false
+attribute[1].huge false
+attribute[1].sortascending true
+attribute[1].sortfunction UCA
+attribute[1].sortstrength PRIMARY
+attribute[1].sortlocale ""
+attribute[1].enablebitvectors false
+attribute[1].enableonlybitvector false
+attribute[1].fastaccess false
+attribute[1].arity 8
+attribute[1].lowerbound -9223372036854775808
+attribute[1].upperbound 9223372036854775807
+attribute[1].densepostinglistthreshold 0.4
+attribute[1].tensortype ""
+attribute[2].name "onlymother"
+attribute[2].datatype STRING
+attribute[2].collectiontype SINGLE
+attribute[2].removeifzero false
+attribute[2].createifnonexistent false
+attribute[2].fastsearch false
+attribute[2].huge false
+attribute[2].sortascending true
+attribute[2].sortfunction UCA
+attribute[2].sortstrength PRIMARY
+attribute[2].sortlocale ""
+attribute[2].enablebitvectors false
+attribute[2].enableonlybitvector false
+attribute[2].fastaccess false
+attribute[2].arity 8
+attribute[2].lowerbound -9223372036854775808
+attribute[2].upperbound 9223372036854775807
+attribute[2].densepostinglistthreshold 0.4
+attribute[2].tensortype "" \ No newline at end of file
diff --git a/config-model/src/test/derived/inheritance/documentmanager.cfg b/config-model/src/test/derived/inheritance/documentmanager.cfg
index 21e65acf67d..f191b900dc1 100644
--- a/config-model/src/test/derived/inheritance/documentmanager.cfg
+++ b/config-model/src/test/derived/inheritance/documentmanager.cfg
@@ -1,426 +1,155 @@
enablecompression false
-annotationtype[0]
-datatype[29]
-datatype[-126593034].id -126593034
-datatype[-126593034].annotationreftype[0]
-datatype[-126593034].arraytype[0]
-datatype[-126593034].documenttype[0]
-datatype[-126593034].structtype[1]
-datatype[-126593034].structtype[single].name "child.body"
-datatype[-126593034].structtype[single].version 0
-datatype[-126593034].structtype[single].field[0]
-datatype[-126593034].structtype[single].inherits[0]
-datatype[-126593034].weightedsettype[0]
-datatype[-141935690].id -141935690
-datatype[-141935690].annotationreftype[0]
-datatype[-141935690].arraytype[0]
-datatype[-141935690].documenttype[0]
-datatype[-141935690].structtype[1]
-datatype[-141935690].structtype[single].name "search_smartsummary"
-datatype[-141935690].structtype[single].version 0
-datatype[-141935690].structtype[single].field[3]
-datatype[-141935690].structtype[single].field[abstract].datatype 2
-datatype[-141935690].structtype[single].field[abstract].name "abstract"
-datatype[-141935690].structtype[single].field[abstract].id[0]
-datatype[-141935690].structtype[single].field[dispurl].datatype 2
-datatype[-141935690].structtype[single].field[dispurl].name "dispurl"
-datatype[-141935690].structtype[single].field[dispurl].id[0]
-datatype[-141935690].structtype[single].field[title].datatype 2
-datatype[-141935690].structtype[single].field[title].name "title"
-datatype[-141935690].structtype[single].field[title].id[0]
-datatype[-141935690].structtype[single].inherits[0]
-datatype[-141935690].weightedsettype[0]
-datatype[-1467672569].id -1467672569
-datatype[-1467672569].annotationreftype[0]
-datatype[-1467672569].arraytype[0]
-datatype[-1467672569].documenttype[0]
-datatype[-1467672569].structtype[1]
-datatype[-1467672569].structtype[single].name "child_search.body"
-datatype[-1467672569].structtype[single].version 0
-datatype[-1467672569].structtype[single].field[0]
-datatype[-1467672569].structtype[single].inherits[0]
-datatype[-1467672569].weightedsettype[0]
-datatype[-154107656].id -154107656
-datatype[-154107656].annotationreftype[0]
-datatype[-154107656].arraytype[0]
-datatype[-154107656].documenttype[1]
-datatype[-154107656].documenttype[single].bodystruct 978262812
-datatype[-154107656].documenttype[single].headerstruct 990971719
-datatype[-154107656].documenttype[single].name "grandparent"
-datatype[-154107656].documenttype[single].version 0
-datatype[-154107656].documenttype[single].inherits[0]
-datatype[-154107656].structtype[0]
-datatype[-154107656].weightedsettype[0]
-datatype[-158393403].id -158393403
-datatype[-158393403].annotationreftype[0]
-datatype[-158393403].arraytype[0]
-datatype[-158393403].documenttype[1]
-datatype[-158393403].documenttype[single].bodystruct -1989003153
-datatype[-158393403].documenttype[single].headerstruct 1306663898
-datatype[-158393403].documenttype[single].name "mother"
-datatype[-158393403].documenttype[single].version 0
-datatype[-158393403].documenttype[single].inherits[1]
-datatype[-158393403].documenttype[single].inherits[grandparent].name "grandparent"
-datatype[-158393403].documenttype[single].inherits[grandparent].version 0
-datatype[-158393403].structtype[0]
-datatype[-158393403].weightedsettype[0]
-datatype[-1740240543].id -1740240543
-datatype[-1740240543].annotationreftype[0]
-datatype[-1740240543].arraytype[0]
-datatype[-1740240543].documenttype[0]
-datatype[-1740240543].structtype[1]
-datatype[-1740240543].structtype[single].name "search_feature"
-datatype[-1740240543].structtype[single].version 0
-datatype[-1740240543].structtype[single].field[2]
-datatype[-1740240543].structtype[single].field[name].datatype 2
-datatype[-1740240543].structtype[single].field[name].name "name"
-datatype[-1740240543].structtype[single].field[name].id[0]
-datatype[-1740240543].structtype[single].field[value].datatype 5
-datatype[-1740240543].structtype[single].field[value].name "value"
-datatype[-1740240543].structtype[single].field[value].id[0]
-datatype[-1740240543].structtype[single].inherits[0]
-datatype[-1740240543].weightedsettype[0]
-datatype[-1742340170].id -1742340170
-datatype[-1742340170].annotationreftype[0]
-datatype[-1742340170].arraytype[0]
-datatype[-1742340170].documenttype[0]
-datatype[-1742340170].structtype[1]
-datatype[-1742340170].structtype[single].name "father.body"
-datatype[-1742340170].structtype[single].version 0
-datatype[-1742340170].structtype[single].field[0]
-datatype[-1742340170].structtype[single].inherits[0]
-datatype[-1742340170].weightedsettype[0]
-datatype[-1852215954].id -1852215954
-datatype[-1852215954].annotationreftype[0]
-datatype[-1852215954].arraytype[0]
-datatype[-1852215954].documenttype[0]
-datatype[-1852215954].structtype[1]
-datatype[-1852215954].structtype[single].name "mother_search.body"
-datatype[-1852215954].structtype[single].version 0
-datatype[-1852215954].structtype[single].field[0]
-datatype[-1852215954].structtype[single].inherits[0]
-datatype[-1852215954].weightedsettype[0]
-datatype[-1962244686].id -1962244686
-datatype[-1962244686].annotationreftype[0]
-datatype[-1962244686].arraytype[0]
-datatype[-1962244686].documenttype[0]
-datatype[-1962244686].structtype[1]
-datatype[-1962244686].structtype[single].name "father_search.header"
-datatype[-1962244686].structtype[single].version 0
-datatype[-1962244686].structtype[single].field[5]
-datatype[-1962244686].structtype[single].field[onlyfather].datatype 2
-datatype[-1962244686].structtype[single].field[onlyfather].name "onlyfather"
-datatype[-1962244686].structtype[single].field[onlyfather].id[0]
-datatype[-1962244686].structtype[single].field[onlygrandparent].datatype 0
-datatype[-1962244686].structtype[single].field[onlygrandparent].name "onlygrandparent"
-datatype[-1962244686].structtype[single].field[onlygrandparent].id[0]
-datatype[-1962244686].structtype[single].field[overridden].datatype 0
-datatype[-1962244686].structtype[single].field[overridden].name "overridden"
-datatype[-1962244686].structtype[single].field[overridden].id[0]
-datatype[-1962244686].structtype[single].field[rankfeatures].datatype 147991900
-datatype[-1962244686].structtype[single].field[rankfeatures].name "rankfeatures"
-datatype[-1962244686].structtype[single].field[rankfeatures].id[0]
-datatype[-1962244686].structtype[single].field[summaryfeatures].datatype 147991900
-datatype[-1962244686].structtype[single].field[summaryfeatures].name "summaryfeatures"
-datatype[-1962244686].structtype[single].field[summaryfeatures].id[0]
-datatype[-1962244686].structtype[single].inherits[0]
-datatype[-1962244686].weightedsettype[0]
-datatype[-1989003153].id -1989003153
-datatype[-1989003153].annotationreftype[0]
-datatype[-1989003153].arraytype[0]
-datatype[-1989003153].documenttype[0]
-datatype[-1989003153].structtype[1]
-datatype[-1989003153].structtype[single].name "mother.body"
-datatype[-1989003153].structtype[single].version 0
-datatype[-1989003153].structtype[single].field[0]
-datatype[-1989003153].structtype[single].inherits[0]
-datatype[-1989003153].weightedsettype[0]
-datatype[-205818510].id -205818510
-datatype[-205818510].annotationreftype[0]
-datatype[-205818510].arraytype[0]
-datatype[-205818510].documenttype[0]
-datatype[-205818510].structtype[1]
-datatype[-205818510].structtype[single].name "child_search.header"
-datatype[-205818510].structtype[single].version 0
-datatype[-205818510].structtype[single].field[7]
-datatype[-205818510].structtype[single].field[onlychild].datatype 2
-datatype[-205818510].structtype[single].field[onlychild].name "onlychild"
-datatype[-205818510].structtype[single].field[onlychild].id[0]
-datatype[-205818510].structtype[single].field[onlyfather].datatype 2
-datatype[-205818510].structtype[single].field[onlyfather].name "onlyfather"
-datatype[-205818510].structtype[single].field[onlyfather].id[0]
-datatype[-205818510].structtype[single].field[onlygrandparent].datatype 0
-datatype[-205818510].structtype[single].field[onlygrandparent].name "onlygrandparent"
-datatype[-205818510].structtype[single].field[onlygrandparent].id[0]
-datatype[-205818510].structtype[single].field[onlymother].datatype 2
-datatype[-205818510].structtype[single].field[onlymother].name "onlymother"
-datatype[-205818510].structtype[single].field[onlymother].id[0]
-datatype[-205818510].structtype[single].field[overridden].datatype 0
-datatype[-205818510].structtype[single].field[overridden].name "overridden"
-datatype[-205818510].structtype[single].field[overridden].id[0]
-datatype[-205818510].structtype[single].field[rankfeatures].datatype 147991900
-datatype[-205818510].structtype[single].field[rankfeatures].name "rankfeatures"
-datatype[-205818510].structtype[single].field[rankfeatures].id[0]
-datatype[-205818510].structtype[single].field[summaryfeatures].datatype 147991900
-datatype[-205818510].structtype[single].field[summaryfeatures].name "summaryfeatures"
-datatype[-205818510].structtype[single].field[summaryfeatures].id[0]
-datatype[-205818510].structtype[single].inherits[0]
-datatype[-205818510].weightedsettype[0]
-datatype[-384824039].id -384824039
-datatype[-384824039].annotationreftype[0]
-datatype[-384824039].arraytype[0]
-datatype[-384824039].documenttype[0]
-datatype[-384824039].structtype[1]
-datatype[-384824039].structtype[single].name "mother_search.header"
-datatype[-384824039].structtype[single].version 0
-datatype[-384824039].structtype[single].field[5]
-datatype[-384824039].structtype[single].field[onlygrandparent].datatype 0
-datatype[-384824039].structtype[single].field[onlygrandparent].name "onlygrandparent"
-datatype[-384824039].structtype[single].field[onlygrandparent].id[0]
-datatype[-384824039].structtype[single].field[onlymother].datatype 2
-datatype[-384824039].structtype[single].field[onlymother].name "onlymother"
-datatype[-384824039].structtype[single].field[onlymother].id[0]
-datatype[-384824039].structtype[single].field[overridden].datatype 0
-datatype[-384824039].structtype[single].field[overridden].name "overridden"
-datatype[-384824039].structtype[single].field[overridden].id[0]
-datatype[-384824039].structtype[single].field[rankfeatures].datatype 147991900
-datatype[-384824039].structtype[single].field[rankfeatures].name "rankfeatures"
-datatype[-384824039].structtype[single].field[rankfeatures].id[0]
-datatype[-384824039].structtype[single].field[summaryfeatures].datatype 147991900
-datatype[-384824039].structtype[single].field[summaryfeatures].name "summaryfeatures"
-datatype[-384824039].structtype[single].field[summaryfeatures].id[0]
-datatype[-384824039].structtype[single].inherits[0]
-datatype[-384824039].weightedsettype[0]
-datatype[-52742073].id -52742073
-datatype[-52742073].annotationreftype[0]
-datatype[-52742073].arraytype[0]
-datatype[-52742073].documenttype[0]
-datatype[-52742073].structtype[1]
-datatype[-52742073].structtype[single].name "father_search.body"
-datatype[-52742073].structtype[single].version 0
-datatype[-52742073].structtype[single].field[0]
-datatype[-52742073].structtype[single].inherits[0]
-datatype[-52742073].weightedsettype[0]
-datatype[-580592339].id -580592339
-datatype[-580592339].annotationreftype[0]
-datatype[-580592339].arraytype[0]
-datatype[-580592339].documenttype[1]
-datatype[-580592339].documenttype[single].bodystruct -1467672569
-datatype[-580592339].documenttype[single].headerstruct -205818510
-datatype[-580592339].documenttype[single].name "child_search"
-datatype[-580592339].documenttype[single].version 0
-datatype[-580592339].documenttype[single].inherits[0]
-datatype[-580592339].structtype[0]
-datatype[-580592339].weightedsettype[0]
-datatype[-876064862].id -876064862
-datatype[-876064862].annotationreftype[0]
-datatype[-876064862].arraytype[0]
-datatype[-876064862].documenttype[0]
-datatype[-876064862].structtype[1]
-datatype[-876064862].structtype[single].name "search_position"
-datatype[-876064862].structtype[single].version 0
-datatype[-876064862].structtype[single].field[2]
-datatype[-876064862].structtype[single].field[x].datatype 0
-datatype[-876064862].structtype[single].field[x].name "x"
-datatype[-876064862].structtype[single].field[x].id[0]
-datatype[-876064862].structtype[single].field[y].datatype 0
-datatype[-876064862].structtype[single].field[y].name "y"
-datatype[-876064862].structtype[single].field[y].id[0]
-datatype[-876064862].structtype[single].inherits[0]
-datatype[-876064862].weightedsettype[0]
-datatype[1306663898].id 1306663898
-datatype[1306663898].annotationreftype[0]
-datatype[1306663898].arraytype[0]
-datatype[1306663898].documenttype[0]
-datatype[1306663898].structtype[1]
-datatype[1306663898].structtype[single].name "mother.header"
-datatype[1306663898].structtype[single].version 0
-datatype[1306663898].structtype[single].field[1]
-datatype[1306663898].structtype[single].field[onlymother].datatype 2
-datatype[1306663898].structtype[single].field[onlymother].name "onlymother"
-datatype[1306663898].structtype[single].field[onlymother].id[0]
-datatype[1306663898].structtype[single].inherits[0]
-datatype[1306663898].weightedsettype[0]
-datatype[1464571117].id 1464571117
-datatype[1464571117].annotationreftype[0]
-datatype[1464571117].arraytype[0]
-datatype[1464571117].documenttype[1]
-datatype[1464571117].documenttype[single].bodystruct -52742073
-datatype[1464571117].documenttype[single].headerstruct -1962244686
-datatype[1464571117].documenttype[single].name "father_search"
-datatype[1464571117].documenttype[single].version 0
-datatype[1464571117].documenttype[single].inherits[0]
-datatype[1464571117].structtype[0]
-datatype[1464571117].weightedsettype[0]
-datatype[147991900].id 147991900
-datatype[147991900].annotationreftype[0]
-datatype[147991900].arraytype[1]
-datatype[147991900].arraytype[single].datatype -1740240543
-datatype[147991900].documenttype[0]
-datatype[147991900].structtype[0]
-datatype[147991900].weightedsettype[0]
-datatype[1530060044].id 1530060044
-datatype[1530060044].annotationreftype[0]
-datatype[1530060044].arraytype[0]
-datatype[1530060044].documenttype[0]
-datatype[1530060044].structtype[1]
-datatype[1530060044].structtype[single].name "grandparent_search.header"
-datatype[1530060044].structtype[single].version 0
-datatype[1530060044].structtype[single].field[4]
-datatype[1530060044].structtype[single].field[onlygrandparent].datatype 0
-datatype[1530060044].structtype[single].field[onlygrandparent].name "onlygrandparent"
-datatype[1530060044].structtype[single].field[onlygrandparent].id[0]
-datatype[1530060044].structtype[single].field[overridden].datatype 0
-datatype[1530060044].structtype[single].field[overridden].name "overridden"
-datatype[1530060044].structtype[single].field[overridden].id[0]
-datatype[1530060044].structtype[single].field[rankfeatures].datatype 147991900
-datatype[1530060044].structtype[single].field[rankfeatures].name "rankfeatures"
-datatype[1530060044].structtype[single].field[rankfeatures].id[0]
-datatype[1530060044].structtype[single].field[summaryfeatures].datatype 147991900
-datatype[1530060044].structtype[single].field[summaryfeatures].name "summaryfeatures"
-datatype[1530060044].structtype[single].field[summaryfeatures].id[0]
-datatype[1530060044].structtype[single].inherits[0]
-datatype[1530060044].weightedsettype[0]
-datatype[1845861921].id 1845861921
-datatype[1845861921].annotationreftype[0]
-datatype[1845861921].arraytype[0]
-datatype[1845861921].documenttype[0]
-datatype[1845861921].structtype[1]
-datatype[1845861921].structtype[single].name "grandparent_search.body"
-datatype[1845861921].structtype[single].version 0
-datatype[1845861921].structtype[single].field[0]
-datatype[1845861921].structtype[single].inherits[0]
-datatype[1845861921].weightedsettype[0]
-datatype[2126589281].id 2126589281
-datatype[2126589281].annotationreftype[0]
-datatype[2126589281].arraytype[0]
-datatype[2126589281].documenttype[0]
-datatype[2126589281].structtype[1]
-datatype[2126589281].structtype[single].name "father.header"
-datatype[2126589281].structtype[single].version 0
-datatype[2126589281].structtype[single].field[1]
-datatype[2126589281].structtype[single].field[onlyfather].datatype 2
-datatype[2126589281].structtype[single].field[onlyfather].name "onlyfather"
-datatype[2126589281].structtype[single].field[onlyfather].id[0]
-datatype[2126589281].structtype[single].inherits[0]
-datatype[2126589281].weightedsettype[0]
-datatype[328953555].id 328953555
-datatype[328953555].annotationreftype[0]
-datatype[328953555].arraytype[0]
-datatype[328953555].documenttype[1]
-datatype[328953555].documenttype[single].bodystruct 1845861921
-datatype[328953555].documenttype[single].headerstruct 1530060044
-datatype[328953555].documenttype[single].name "grandparent_search"
-datatype[328953555].documenttype[single].version 0
-datatype[328953555].documenttype[single].inherits[0]
-datatype[328953555].structtype[0]
-datatype[328953555].weightedsettype[0]
-datatype[464784087].id 464784087
-datatype[464784087].annotationreftype[0]
-datatype[464784087].arraytype[0]
-datatype[464784087].documenttype[0]
-datatype[464784087].structtype[1]
-datatype[464784087].structtype[single].name "search_uri"
-datatype[464784087].structtype[single].version 0
-datatype[464784087].structtype[single].field[7]
-datatype[464784087].structtype[single].field[all].datatype 2
-datatype[464784087].structtype[single].field[all].name "all"
-datatype[464784087].structtype[single].field[all].id[0]
-datatype[464784087].structtype[single].field[fragment].datatype 2
-datatype[464784087].structtype[single].field[fragment].name "fragment"
-datatype[464784087].structtype[single].field[fragment].id[0]
-datatype[464784087].structtype[single].field[host].datatype 2
-datatype[464784087].structtype[single].field[host].name "host"
-datatype[464784087].structtype[single].field[host].id[0]
-datatype[464784087].structtype[single].field[path].datatype 2
-datatype[464784087].structtype[single].field[path].name "path"
-datatype[464784087].structtype[single].field[path].id[0]
-datatype[464784087].structtype[single].field[port].datatype 0
-datatype[464784087].structtype[single].field[port].name "port"
-datatype[464784087].structtype[single].field[port].id[0]
-datatype[464784087].structtype[single].field[query].datatype 2
-datatype[464784087].structtype[single].field[query].name "query"
-datatype[464784087].structtype[single].field[query].id[0]
-datatype[464784087].structtype[single].field[scheme].datatype 2
-datatype[464784087].structtype[single].field[scheme].name "scheme"
-datatype[464784087].structtype[single].field[scheme].id[0]
-datatype[464784087].structtype[single].inherits[0]
-datatype[464784087].weightedsettype[0]
-datatype[644645734].id 644645734
-datatype[644645734].annotationreftype[0]
-datatype[644645734].arraytype[0]
-datatype[644645734].documenttype[1]
-datatype[644645734].documenttype[single].bodystruct -1852215954
-datatype[644645734].documenttype[single].headerstruct -384824039
-datatype[644645734].documenttype[single].name "mother_search"
-datatype[644645734].documenttype[single].version 0
-datatype[644645734].documenttype[single].inherits[0]
-datatype[644645734].structtype[0]
-datatype[644645734].weightedsettype[0]
-datatype[746267614].id 746267614
-datatype[746267614].annotationreftype[0]
-datatype[746267614].arraytype[0]
-datatype[746267614].documenttype[1]
-datatype[746267614].documenttype[single].bodystruct -126593034
-datatype[746267614].documenttype[single].headerstruct 81425825
-datatype[746267614].documenttype[single].name "child"
-datatype[746267614].documenttype[single].version 0
-datatype[746267614].documenttype[single].inherits[2]
-datatype[746267614].documenttype[single].inherits[father].name "father"
-datatype[746267614].documenttype[single].inherits[father].version 0
-datatype[746267614].documenttype[single].inherits[mother].name "mother"
-datatype[746267614].documenttype[single].inherits[mother].version 0
-datatype[746267614].structtype[0]
-datatype[746267614].weightedsettype[0]
-datatype[81425825].id 81425825
-datatype[81425825].annotationreftype[0]
-datatype[81425825].arraytype[0]
-datatype[81425825].documenttype[0]
-datatype[81425825].structtype[1]
-datatype[81425825].structtype[single].name "child.header"
-datatype[81425825].structtype[single].version 0
-datatype[81425825].structtype[single].field[1]
-datatype[81425825].structtype[single].field[onlychild].datatype 2
-datatype[81425825].structtype[single].field[onlychild].name "onlychild"
-datatype[81425825].structtype[single].field[onlychild].id[0]
-datatype[81425825].structtype[single].inherits[0]
-datatype[81425825].weightedsettype[0]
-datatype[978262812].id 978262812
-datatype[978262812].annotationreftype[0]
-datatype[978262812].arraytype[0]
-datatype[978262812].documenttype[0]
-datatype[978262812].structtype[1]
-datatype[978262812].structtype[single].name "grandparent.body"
-datatype[978262812].structtype[single].version 0
-datatype[978262812].structtype[single].field[0]
-datatype[978262812].structtype[single].inherits[0]
-datatype[978262812].weightedsettype[0]
-datatype[986686494].id 986686494
-datatype[986686494].annotationreftype[0]
-datatype[986686494].arraytype[0]
-datatype[986686494].documenttype[1]
-datatype[986686494].documenttype[single].bodystruct -1742340170
-datatype[986686494].documenttype[single].headerstruct 2126589281
-datatype[986686494].documenttype[single].name "father"
-datatype[986686494].documenttype[single].version 0
-datatype[986686494].documenttype[single].inherits[1]
-datatype[986686494].documenttype[single].inherits[grandparent].name "grandparent"
-datatype[986686494].documenttype[single].inherits[grandparent].version 0
-datatype[986686494].structtype[0]
-datatype[986686494].weightedsettype[0]
-datatype[990971719].id 990971719
-datatype[990971719].annotationreftype[0]
-datatype[990971719].arraytype[0]
-datatype[990971719].documenttype[0]
-datatype[990971719].structtype[1]
-datatype[990971719].structtype[single].name "grandparent.header"
-datatype[990971719].structtype[single].version 0
-datatype[990971719].structtype[single].field[2]
-datatype[990971719].structtype[single].field[onlygrandparent].datatype 0
-datatype[990971719].structtype[single].field[onlygrandparent].name "onlygrandparent"
-datatype[990971719].structtype[single].field[onlygrandparent].id[0]
-datatype[990971719].structtype[single].field[overridden].datatype 0
-datatype[990971719].structtype[single].field[overridden].name "overridden"
-datatype[990971719].structtype[single].field[overridden].id[0]
-datatype[990971719].structtype[single].inherits[0]
-datatype[990971719].weightedsettype[0]
+datatype[0].id 1381038251
+datatype[0].structtype[0].name "position"
+datatype[0].structtype[0].version 0
+datatype[0].structtype[0].compresstype NONE
+datatype[0].structtype[0].compresslevel 0
+datatype[0].structtype[0].compressthreshold 95
+datatype[0].structtype[0].compressminsize 800
+datatype[0].structtype[0].field[0].name "x"
+datatype[0].structtype[0].field[0].datatype 0
+datatype[0].structtype[0].field[0].detailedtype ""
+datatype[0].structtype[0].field[1].name "y"
+datatype[0].structtype[0].field[1].datatype 0
+datatype[0].structtype[0].field[1].detailedtype ""
+datatype[1].id 990971719
+datatype[1].structtype[0].name "grandparent.header"
+datatype[1].structtype[0].version 0
+datatype[1].structtype[0].compresstype NONE
+datatype[1].structtype[0].compresslevel 0
+datatype[1].structtype[0].compressthreshold 95
+datatype[1].structtype[0].compressminsize 800
+datatype[1].structtype[0].field[0].name "onlygrandparent"
+datatype[1].structtype[0].field[0].datatype 0
+datatype[1].structtype[0].field[0].detailedtype ""
+datatype[1].structtype[0].field[1].name "overridden"
+datatype[1].structtype[0].field[1].datatype 0
+datatype[1].structtype[0].field[1].detailedtype ""
+datatype[1].structtype[0].field[2].name "rankfeatures"
+datatype[1].structtype[0].field[2].datatype 2
+datatype[1].structtype[0].field[2].detailedtype ""
+datatype[1].structtype[0].field[3].name "summaryfeatures"
+datatype[1].structtype[0].field[3].datatype 2
+datatype[1].structtype[0].field[3].detailedtype ""
+datatype[2].id 978262812
+datatype[2].structtype[0].name "grandparent.body"
+datatype[2].structtype[0].version 0
+datatype[2].structtype[0].compresstype NONE
+datatype[2].structtype[0].compresslevel 0
+datatype[2].structtype[0].compressthreshold 95
+datatype[2].structtype[0].compressminsize 800
+datatype[3].id -154107656
+datatype[3].documenttype[0].name "grandparent"
+datatype[3].documenttype[0].version 0
+datatype[3].documenttype[0].inherits[0].name "document"
+datatype[3].documenttype[0].inherits[0].version 0
+datatype[3].documenttype[0].headerstruct 990971719
+datatype[3].documenttype[0].bodystruct 978262812
+datatype[3].documenttype[0].fieldsets{[document]}.fields[0] "onlygrandparent"
+datatype[3].documenttype[0].fieldsets{[document]}.fields[1] "overridden"
+datatype[4].id 1306663898
+datatype[4].structtype[0].name "mother.header"
+datatype[4].structtype[0].version 0
+datatype[4].structtype[0].compresstype NONE
+datatype[4].structtype[0].compresslevel 0
+datatype[4].structtype[0].compressthreshold 95
+datatype[4].structtype[0].compressminsize 800
+datatype[4].structtype[0].field[0].name "onlymother"
+datatype[4].structtype[0].field[0].datatype 2
+datatype[4].structtype[0].field[0].detailedtype ""
+datatype[4].structtype[0].field[1].name "overridden"
+datatype[4].structtype[0].field[1].datatype 0
+datatype[4].structtype[0].field[1].detailedtype ""
+datatype[5].id -1989003153
+datatype[5].structtype[0].name "mother.body"
+datatype[5].structtype[0].version 0
+datatype[5].structtype[0].compresstype NONE
+datatype[5].structtype[0].compresslevel 0
+datatype[5].structtype[0].compressthreshold 95
+datatype[5].structtype[0].compressminsize 800
+datatype[6].id -158393403
+datatype[6].documenttype[0].name "mother"
+datatype[6].documenttype[0].version 0
+datatype[6].documenttype[0].inherits[0].name "grandparent"
+datatype[6].documenttype[0].inherits[0].version 0
+datatype[6].documenttype[0].inherits[1].name "document"
+datatype[6].documenttype[0].inherits[1].version 0
+datatype[6].documenttype[0].headerstruct 1306663898
+datatype[6].documenttype[0].bodystruct -1989003153
+datatype[6].documenttype[0].fieldsets{[document]}.fields[0] "onlygrandparent"
+datatype[6].documenttype[0].fieldsets{[document]}.fields[1] "onlymother"
+datatype[6].documenttype[0].fieldsets{[document]}.fields[2] "overridden"
+datatype[6].documenttype[0].fieldsets{[document]}.fields[3] "rankfeatures"
+datatype[6].documenttype[0].fieldsets{[document]}.fields[4] "summaryfeatures"
+datatype[7].id 2126589281
+datatype[7].structtype[0].name "father.header"
+datatype[7].structtype[0].version 0
+datatype[7].structtype[0].compresstype NONE
+datatype[7].structtype[0].compresslevel 0
+datatype[7].structtype[0].compressthreshold 95
+datatype[7].structtype[0].compressminsize 800
+datatype[7].structtype[0].field[0].name "onlyfather"
+datatype[7].structtype[0].field[0].datatype 2
+datatype[7].structtype[0].field[0].detailedtype ""
+datatype[7].structtype[0].field[1].name "overridden"
+datatype[7].structtype[0].field[1].datatype 0
+datatype[7].structtype[0].field[1].detailedtype ""
+datatype[8].id -1742340170
+datatype[8].structtype[0].name "father.body"
+datatype[8].structtype[0].version 0
+datatype[8].structtype[0].compresstype NONE
+datatype[8].structtype[0].compresslevel 0
+datatype[8].structtype[0].compressthreshold 95
+datatype[8].structtype[0].compressminsize 800
+datatype[9].id 986686494
+datatype[9].documenttype[0].name "father"
+datatype[9].documenttype[0].version 0
+datatype[9].documenttype[0].inherits[0].name "grandparent"
+datatype[9].documenttype[0].inherits[0].version 0
+datatype[9].documenttype[0].inherits[1].name "document"
+datatype[9].documenttype[0].inherits[1].version 0
+datatype[9].documenttype[0].headerstruct 2126589281
+datatype[9].documenttype[0].bodystruct -1742340170
+datatype[9].documenttype[0].fieldsets{[document]}.fields[0] "onlyfather"
+datatype[9].documenttype[0].fieldsets{[document]}.fields[1] "onlygrandparent"
+datatype[9].documenttype[0].fieldsets{[document]}.fields[2] "overridden"
+datatype[9].documenttype[0].fieldsets{[document]}.fields[3] "rankfeatures"
+datatype[9].documenttype[0].fieldsets{[document]}.fields[4] "summaryfeatures"
+datatype[10].id 81425825
+datatype[10].structtype[0].name "child.header"
+datatype[10].structtype[0].version 0
+datatype[10].structtype[0].compresstype NONE
+datatype[10].structtype[0].compresslevel 0
+datatype[10].structtype[0].compressthreshold 95
+datatype[10].structtype[0].compressminsize 800
+datatype[10].structtype[0].field[0].name "onlychild"
+datatype[10].structtype[0].field[0].datatype 2
+datatype[10].structtype[0].field[0].detailedtype ""
+datatype[10].structtype[0].field[1].name "overridden"
+datatype[10].structtype[0].field[1].datatype 0
+datatype[10].structtype[0].field[1].detailedtype ""
+datatype[11].id -126593034
+datatype[11].structtype[0].name "child.body"
+datatype[11].structtype[0].version 0
+datatype[11].structtype[0].compresstype NONE
+datatype[11].structtype[0].compresslevel 0
+datatype[11].structtype[0].compressthreshold 95
+datatype[11].structtype[0].compressminsize 800
+datatype[12].id 746267614
+datatype[12].documenttype[0].name "child"
+datatype[12].documenttype[0].version 0
+datatype[12].documenttype[0].inherits[0].name "document"
+datatype[12].documenttype[0].inherits[0].version 0
+datatype[12].documenttype[0].inherits[1].name "father"
+datatype[12].documenttype[0].inherits[1].version 0
+datatype[12].documenttype[0].inherits[2].name "mother"
+datatype[12].documenttype[0].inherits[2].version 0
+datatype[12].documenttype[0].headerstruct 81425825
+datatype[12].documenttype[0].bodystruct -126593034
+datatype[12].documenttype[0].fieldsets{[document]}.fields[0] "onlychild"
+datatype[12].documenttype[0].fieldsets{[document]}.fields[1] "onlyfather"
+datatype[12].documenttype[0].fieldsets{[document]}.fields[2] "onlygrandparent"
+datatype[12].documenttype[0].fieldsets{[document]}.fields[3] "onlymother"
+datatype[12].documenttype[0].fieldsets{[document]}.fields[4] "overridden"
+datatype[12].documenttype[0].fieldsets{[document]}.fields[5] "rankfeatures"
+datatype[12].documenttype[0].fieldsets{[document]}.fields[6] "summaryfeatures"
diff --git a/config-model/src/test/derived/inheritance/ilscripts.cfg b/config-model/src/test/derived/inheritance/ilscripts.cfg
index 8a9f8fe3c6f..ba5fdf58ccc 100644
--- a/config-model/src/test/derived/inheritance/ilscripts.cfg
+++ b/config-model/src/test/derived/inheritance/ilscripts.cfg
@@ -1,9 +1,12 @@
-ilscript[1]
-ilscript[child].doctype "child"
-ilscript[child].name "child"
-ilscript[child].content[5]
-ilscript[child].content[0] "input onlygrandparent | attribute onlygrandparent"
-ilscript[child].content[1] "input overridden | attribute overridden"
-ilscript[child].content[2] "input onlyfather | summary onlyfather"
-ilscript[child].content[3] "input onlymother | tokenize normalize stem:\"SHORTEST\" | attribute onlymother | index onlymother"
-ilscript[child].content[4] "input onlychild | tokenize normalize stem:\"SHORTEST\" | index onlychild"
+maxtermoccurrences 100
+ilscript[0].doctype "child"
+ilscript[0].docfield[0] "onlygrandparent"
+ilscript[0].docfield[1] "overridden"
+ilscript[0].docfield[2] "onlyfather"
+ilscript[0].docfield[3] "onlymother"
+ilscript[0].docfield[4] "onlychild"
+ilscript[0].content[0] "clear_state | guard { input onlygrandparent | attribute onlygrandparent; }"
+ilscript[0].content[1] "clear_state | guard { input overridden | attribute overridden; }"
+ilscript[0].content[2] "clear_state | guard { input onlyfather | summary onlyfather; }"
+ilscript[0].content[3] "clear_state | guard { input onlymother | tokenize normalize stem:\"SHORTEST\" | attribute onlymother | index onlymother; }"
+ilscript[0].content[4] "clear_state | guard { input onlychild | tokenize normalize stem:\"SHORTEST\" | index onlychild; }" \ No newline at end of file
diff --git a/config-model/src/test/derived/inheritance/index-info.cfg b/config-model/src/test/derived/inheritance/index-info.cfg
index f58df991c40..a5dc465b441 100644
--- a/config-model/src/test/derived/inheritance/index-info.cfg
+++ b/config-model/src/test/derived/inheritance/index-info.cfg
@@ -1,30 +1,43 @@
-indexinfo[1]
-indexinfo[child].name "child"
-indexinfo[child].alias[0]
-indexinfo[child].command[13]
-indexinfo[child].command[00].command "index"
-indexinfo[child].command[00].indexname "sddocname"
-indexinfo[child].command[01].command "word"
-indexinfo[child].command[01].indexname "sddocname"
-indexinfo[child].command[02].command "index"
-indexinfo[child].command[02].indexname "onlychild"
-indexinfo[child].command[03].command "index"
-indexinfo[child].command[03].indexname "onlygrandparent"
-indexinfo[child].command[04].command "attribute"
-indexinfo[child].command[04].indexname "onlygrandparent"
-indexinfo[child].command[05].command "index"
-indexinfo[child].command[05].indexname "overridden"
-indexinfo[child].command[06].command "attribute"
-indexinfo[child].command[06].indexname "overridden"
-indexinfo[child].command[07].command "index"
-indexinfo[child].command[07].indexname "onlyfather"
-indexinfo[child].command[08].command "index"
-indexinfo[child].command[08].indexname "onlymother"
-indexinfo[child].command[09].command "stem:SHORTEST"
-indexinfo[child].command[09].indexname "onlymother"
-indexinfo[child].command[10].command "normalize"
-indexinfo[child].command[10].indexname "onlymother"
-indexinfo[child].command[11].command "stem:SHORTEST"
-indexinfo[child].command[11].indexname "onlychild"
-indexinfo[child].command[12].command "normalize"
-indexinfo[child].command[12].indexname "onlychild"
+indexinfo[0].name "child"
+indexinfo[0].command[0].indexname "sddocname"
+indexinfo[0].command[0].command "index"
+indexinfo[0].command[1].indexname "sddocname"
+indexinfo[0].command[1].command "word"
+indexinfo[0].command[2].indexname "onlygrandparent"
+indexinfo[0].command[2].command "index"
+indexinfo[0].command[3].indexname "onlygrandparent"
+indexinfo[0].command[3].command "attribute"
+indexinfo[0].command[4].indexname "onlygrandparent"
+indexinfo[0].command[4].command "numerical"
+indexinfo[0].command[5].indexname "overridden"
+indexinfo[0].command[5].command "index"
+indexinfo[0].command[6].indexname "overridden"
+indexinfo[0].command[6].command "attribute"
+indexinfo[0].command[7].indexname "overridden"
+indexinfo[0].command[7].command "numerical"
+indexinfo[0].command[8].indexname "onlyfather"
+indexinfo[0].command[8].command "index"
+indexinfo[0].command[9].indexname "onlymother"
+indexinfo[0].command[9].command "index"
+indexinfo[0].command[10].indexname "onlymother"
+indexinfo[0].command[10].command "lowercase"
+indexinfo[0].command[11].indexname "onlymother"
+indexinfo[0].command[11].command "stem:SHORTEST"
+indexinfo[0].command[12].indexname "onlymother"
+indexinfo[0].command[12].command "normalize"
+indexinfo[0].command[13].indexname "onlymother"
+indexinfo[0].command[13].command "plain-tokens"
+indexinfo[0].command[14].indexname "onlychild"
+indexinfo[0].command[14].command "index"
+indexinfo[0].command[15].indexname "onlychild"
+indexinfo[0].command[15].command "lowercase"
+indexinfo[0].command[16].indexname "onlychild"
+indexinfo[0].command[16].command "stem:SHORTEST"
+indexinfo[0].command[17].indexname "onlychild"
+indexinfo[0].command[17].command "normalize"
+indexinfo[0].command[18].indexname "onlychild"
+indexinfo[0].command[18].command "plain-tokens"
+indexinfo[0].command[19].indexname "rankfeatures"
+indexinfo[0].command[19].command "index"
+indexinfo[0].command[20].indexname "summaryfeatures"
+indexinfo[0].command[20].command "index" \ No newline at end of file
diff --git a/config-model/src/test/derived/inheritance/rank-profiles.cfg b/config-model/src/test/derived/inheritance/rank-profiles.cfg
index abfea4714d5..caca83a9a91 100644
--- a/config-model/src/test/derived/inheritance/rank-profiles.cfg
+++ b/config-model/src/test/derived/inheritance/rank-profiles.cfg
@@ -1,16 +1,10 @@
-rankprofile[2]
-rankprofile[default].name "default"
-rankprofile[default].fef.property[0]
-rankprofile[unranked].binhigh 0
-rankprofile[unranked].binlow 0
-rankprofile[unranked].binsize 0.0
-rankprofile[unranked].name "unranked"
-rankprofile[unranked].fef.property[4]
-rankprofile[unranked].fef.property[a00000].name "vespa.rank.firstphase"
-rankprofile[unranked].fef.property[a00000].value "value(0)"
-rankprofile[unranked].fef.property[a00001].name "vespa.hitcollector.heapsize"
-rankprofile[unranked].fef.property[a00001].value "0"
-rankprofile[unranked].fef.property[a00002].name "vespa.hitcollector.arraysize"
-rankprofile[unranked].fef.property[a00002].value "0"
-rankprofile[unranked].fef.property[a00003].name "vespa.dump.ignoredefaultfeatures"
-rankprofile[unranked].fef.property[a00003].value "true"
+rankprofile[0].name "default"
+rankprofile[1].name "unranked"
+rankprofile[1].fef.property[0].name "vespa.rank.firstphase"
+rankprofile[1].fef.property[0].value "value(0)"
+rankprofile[1].fef.property[1].name "vespa.hitcollector.heapsize"
+rankprofile[1].fef.property[1].value "0"
+rankprofile[1].fef.property[2].name "vespa.hitcollector.arraysize"
+rankprofile[1].fef.property[2].value "0"
+rankprofile[1].fef.property[3].name "vespa.dump.ignoredefaultfeatures"
+rankprofile[1].fef.property[3].value "true" \ No newline at end of file
diff --git a/config-model/src/test/derived/inheritance/summary.cfg b/config-model/src/test/derived/inheritance/summary.cfg
index c396dc780b4..8b1074edefc 100644
--- a/config-model/src/test/derived/inheritance/summary.cfg
+++ b/config-model/src/test/derived/inheritance/summary.cfg
@@ -1,26 +1,23 @@
-defaultsummaryid 1570256615
-classes[2]
-classes[1570256615].id 1570256615
-classes[1570256615].name "child"
-classes[1570256615].fields[4]
-classes[1570256615].fields[documentid].name "documentid"
-classes[1570256615].fields[documentid].type "longstring"
-classes[1570256615].fields[onlyfather].name "onlyfather"
-classes[1570256615].fields[onlyfather].type "longstring"
-classes[1570256615].fields[rankfeatures].name "rankfeatures"
-classes[1570256615].fields[rankfeatures].type "longstring"
-classes[1570256615].fields[summaryfeatures].name "summaryfeatures"
-classes[1570256615].fields[summaryfeatures].type "longstring"
-classes[306313061].id 306313061
-classes[306313061].name "attributeprefetch"
-classes[306313061].fields[5]
-classes[306313061].fields[onlygrandparent].name "onlygrandparent"
-classes[306313061].fields[onlygrandparent].type "integer"
-classes[306313061].fields[onlymother].name "onlymother"
-classes[306313061].fields[onlymother].type "longstring"
-classes[306313061].fields[overridden].name "overridden"
-classes[306313061].fields[overridden].type "integer"
-classes[306313061].fields[rankfeatures].name "rankfeatures"
-classes[306313061].fields[rankfeatures].type "longstring"
-classes[306313061].fields[summaryfeatures].name "summaryfeatures"
-classes[306313061].fields[summaryfeatures].type "longstring"
+defaultsummaryid 1797992819
+classes[0].id 1797992819
+classes[0].name "default"
+classes[0].fields[0].name "onlyfather"
+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 1608562186
+classes[1].name "attributeprefetch"
+classes[1].fields[0].name "onlygrandparent"
+classes[1].fields[0].type "integer"
+classes[1].fields[1].name "overridden"
+classes[1].fields[1].type "integer"
+classes[1].fields[2].name "onlymother"
+classes[1].fields[2].type "longstring"
+classes[1].fields[3].name "rankfeatures"
+classes[1].fields[3].type "featuredata"
+classes[1].fields[4].name "summaryfeatures"
+classes[1].fields[4].type "featuredata" \ No newline at end of file
diff --git a/config-model/src/test/derived/inheritance/summarymap.cfg b/config-model/src/test/derived/inheritance/summarymap.cfg
index c92c8e1cf6c..b4640f522f3 100644
--- a/config-model/src/test/derived/inheritance/summarymap.cfg
+++ b/config-model/src/test/derived/inheritance/summarymap.cfg
@@ -1,17 +1,16 @@
defaultoutputclass -1
-override[5]
-override[onlygrandparent].arguments "onlygrandparent"
-override[onlygrandparent].command "attribute"
-override[onlygrandparent].field "onlygrandparent"
-override[onlymother].arguments "onlymother"
-override[onlymother].command "attribute"
-override[onlymother].field "onlymother"
-override[overridden].arguments "overridden"
-override[overridden].command "attribute"
-override[overridden].field "overridden"
-override[rankfeatures].arguments ""
-override[rankfeatures].command "rankfeatures"
-override[rankfeatures].field "rankfeatures"
-override[summaryfeatures].arguments ""
-override[summaryfeatures].command "summaryfeatures"
-override[summaryfeatures].field "summaryfeatures"
+override[0].field "rankfeatures"
+override[0].command "rankfeatures"
+override[0].arguments ""
+override[1].field "summaryfeatures"
+override[1].command "summaryfeatures"
+override[1].arguments ""
+override[2].field "onlygrandparent"
+override[2].command "attribute"
+override[2].arguments "onlygrandparent"
+override[3].field "overridden"
+override[3].command "attribute"
+override[3].arguments "overridden"
+override[4].field "onlymother"
+override[4].command "attribute"
+override[4].arguments "onlymother" \ No newline at end of file
diff --git a/config-model/src/test/derived/inheritstruct/index-info.cfg b/config-model/src/test/derived/inheritstruct/index-info.cfg
index ba9f3eead26..61c0c786144 100644
--- a/config-model/src/test/derived/inheritstruct/index-info.cfg
+++ b/config-model/src/test/derived/inheritstruct/index-info.cfg
@@ -11,11 +11,15 @@ indexinfo[0].command[4].indexname "child_struct_field.my_str"
indexinfo[0].command[4].command "stem:SHORTEST"
indexinfo[0].command[5].indexname "child_struct_field.my_str"
indexinfo[0].command[5].command "normalize"
-indexinfo[0].command[6].indexname "child_struct_field"
-indexinfo[0].command[6].command "index"
+indexinfo[0].command[6].indexname "child_struct_field.my_str"
+indexinfo[0].command[6].command "plain-tokens"
indexinfo[0].command[7].indexname "child_struct_field"
-indexinfo[0].command[7].command "lowercase"
-indexinfo[0].command[8].indexname "rankfeatures"
-indexinfo[0].command[8].command "index"
-indexinfo[0].command[9].indexname "summaryfeatures"
-indexinfo[0].command[9].command "index" \ No newline at end of file
+indexinfo[0].command[7].command "index"
+indexinfo[0].command[8].indexname "child_struct_field"
+indexinfo[0].command[8].command "lowercase"
+indexinfo[0].command[9].indexname "child_struct_field"
+indexinfo[0].command[9].command "plain-tokens"
+indexinfo[0].command[10].indexname "rankfeatures"
+indexinfo[0].command[10].command "index"
+indexinfo[0].command[11].indexname "summaryfeatures"
+indexinfo[0].command[11].command "index" \ No newline at end of file
diff --git a/config-model/src/test/derived/music/index-info.cfg b/config-model/src/test/derived/music/index-info.cfg
index f7faae11ca8..e760acf0e52 100644
--- a/config-model/src/test/derived/music/index-info.cfg
+++ b/config-model/src/test/derived/music/index-info.cfg
@@ -19,197 +19,217 @@ indexinfo[0].command[8].indexname "pto"
indexinfo[0].command[8].command "numerical"
indexinfo[0].command[9].indexname "keys"
indexinfo[0].command[9].command "index"
-indexinfo[0].command[10].indexname "default"
-indexinfo[0].command[10].command "index"
+indexinfo[0].command[10].indexname "keys"
+indexinfo[0].command[10].command "lowercase"
indexinfo[0].command[11].indexname "keys"
-indexinfo[0].command[11].command "lowercase"
-indexinfo[0].command[12].indexname "default"
-indexinfo[0].command[12].command "lowercase"
+indexinfo[0].command[11].command "stem:SHORTEST"
+indexinfo[0].command[12].indexname "keys"
+indexinfo[0].command[12].command "normalize"
indexinfo[0].command[13].indexname "keys"
-indexinfo[0].command[13].command "stem:SHORTEST"
-indexinfo[0].command[14].indexname "default"
-indexinfo[0].command[14].command "stem:SHORTEST"
-indexinfo[0].command[15].indexname "keys"
-indexinfo[0].command[15].command "normalize"
-indexinfo[0].command[16].indexname "default"
-indexinfo[0].command[16].command "normalize"
-indexinfo[0].command[17].indexname "mid"
+indexinfo[0].command[13].command "plain-tokens"
+indexinfo[0].command[14].indexname "mid"
+indexinfo[0].command[14].command "index"
+indexinfo[0].command[15].indexname "mid"
+indexinfo[0].command[15].command "attribute"
+indexinfo[0].command[16].indexname "mid"
+indexinfo[0].command[16].command "numerical"
+indexinfo[0].command[17].indexname "ew"
indexinfo[0].command[17].command "index"
-indexinfo[0].command[18].indexname "mid"
-indexinfo[0].command[18].command "attribute"
-indexinfo[0].command[19].indexname "mid"
-indexinfo[0].command[19].command "numerical"
-indexinfo[0].command[20].indexname "surl"
-indexinfo[0].command[20].command "index"
-indexinfo[0].command[21].indexname "userrate"
-indexinfo[0].command[21].command "index"
-indexinfo[0].command[22].indexname "userrate"
-indexinfo[0].command[22].command "numerical"
-indexinfo[0].command[23].indexname "pid"
+indexinfo[0].command[18].indexname "ew"
+indexinfo[0].command[18].command "lowercase"
+indexinfo[0].command[19].indexname "ew"
+indexinfo[0].command[19].command "stem:SHORTEST"
+indexinfo[0].command[20].indexname "ew"
+indexinfo[0].command[20].command "normalize"
+indexinfo[0].command[21].indexname "ew"
+indexinfo[0].command[21].command "plain-tokens"
+indexinfo[0].command[22].indexname "surl"
+indexinfo[0].command[22].command "index"
+indexinfo[0].command[23].indexname "userrate"
indexinfo[0].command[23].command "index"
-indexinfo[0].command[24].indexname "weight"
-indexinfo[0].command[24].command "index"
-indexinfo[0].command[25].indexname "weight"
-indexinfo[0].command[25].command "attribute"
+indexinfo[0].command[24].indexname "userrate"
+indexinfo[0].command[24].command "numerical"
+indexinfo[0].command[25].indexname "pid"
+indexinfo[0].command[25].command "index"
indexinfo[0].command[26].indexname "weight"
-indexinfo[0].command[26].command "numerical"
-indexinfo[0].command[27].indexname "url"
-indexinfo[0].command[27].command "index"
-indexinfo[0].command[28].indexname "isbn"
-indexinfo[0].command[28].command "index"
-indexinfo[0].command[29].indexname "fmt"
+indexinfo[0].command[26].command "index"
+indexinfo[0].command[27].indexname "weight"
+indexinfo[0].command[27].command "attribute"
+indexinfo[0].command[28].indexname "weight"
+indexinfo[0].command[28].command "numerical"
+indexinfo[0].command[29].indexname "url"
indexinfo[0].command[29].command "index"
-indexinfo[0].command[30].indexname "fmt"
-indexinfo[0].command[30].command "lowercase"
+indexinfo[0].command[30].indexname "isbn"
+indexinfo[0].command[30].command "index"
indexinfo[0].command[31].indexname "fmt"
-indexinfo[0].command[31].command "stem:SHORTEST"
+indexinfo[0].command[31].command "index"
indexinfo[0].command[32].indexname "fmt"
-indexinfo[0].command[32].command "normalize"
-indexinfo[0].command[33].indexname "albumid"
-indexinfo[0].command[33].command "index"
-indexinfo[0].command[34].indexname "disp_song"
-indexinfo[0].command[34].command "index"
-indexinfo[0].command[35].indexname "song"
-indexinfo[0].command[35].command "index"
-indexinfo[0].command[36].indexname "song"
-indexinfo[0].command[36].command "lowercase"
-indexinfo[0].command[37].indexname "song"
-indexinfo[0].command[37].command "stem:SHORTEST"
+indexinfo[0].command[32].command "lowercase"
+indexinfo[0].command[33].indexname "fmt"
+indexinfo[0].command[33].command "stem:SHORTEST"
+indexinfo[0].command[34].indexname "fmt"
+indexinfo[0].command[34].command "normalize"
+indexinfo[0].command[35].indexname "fmt"
+indexinfo[0].command[35].command "plain-tokens"
+indexinfo[0].command[36].indexname "albumid"
+indexinfo[0].command[36].command "index"
+indexinfo[0].command[37].indexname "disp_song"
+indexinfo[0].command[37].command "index"
indexinfo[0].command[38].indexname "song"
-indexinfo[0].command[38].command "normalize"
-indexinfo[0].command[39].indexname "pfrom"
-indexinfo[0].command[39].command "index"
-indexinfo[0].command[40].indexname "pfrom"
-indexinfo[0].command[40].command "numerical"
-indexinfo[0].command[41].indexname "bgnpfrom"
-indexinfo[0].command[41].command "index"
-indexinfo[0].command[42].indexname "bgnpfrom"
-indexinfo[0].command[42].command "attribute"
-indexinfo[0].command[43].indexname "bgnpfrom"
-indexinfo[0].command[43].command "numerical"
-indexinfo[0].command[44].indexname "categories"
-indexinfo[0].command[44].command "index"
-indexinfo[0].command[45].indexname "categories"
-indexinfo[0].command[45].command "lowercase"
-indexinfo[0].command[46].indexname "categories"
-indexinfo[0].command[46].command "stem:SHORTEST"
-indexinfo[0].command[47].indexname "categories"
-indexinfo[0].command[47].command "normalize"
-indexinfo[0].command[48].indexname "data"
+indexinfo[0].command[38].command "index"
+indexinfo[0].command[39].indexname "song"
+indexinfo[0].command[39].command "lowercase"
+indexinfo[0].command[40].indexname "song"
+indexinfo[0].command[40].command "stem:SHORTEST"
+indexinfo[0].command[41].indexname "song"
+indexinfo[0].command[41].command "normalize"
+indexinfo[0].command[42].indexname "song"
+indexinfo[0].command[42].command "plain-tokens"
+indexinfo[0].command[43].indexname "pfrom"
+indexinfo[0].command[43].command "index"
+indexinfo[0].command[44].indexname "pfrom"
+indexinfo[0].command[44].command "numerical"
+indexinfo[0].command[45].indexname "bgnpfrom"
+indexinfo[0].command[45].command "index"
+indexinfo[0].command[46].indexname "bgnpfrom"
+indexinfo[0].command[46].command "attribute"
+indexinfo[0].command[47].indexname "bgnpfrom"
+indexinfo[0].command[47].command "numerical"
+indexinfo[0].command[48].indexname "categories"
indexinfo[0].command[48].command "index"
-indexinfo[0].command[49].indexname "numreview"
-indexinfo[0].command[49].command "index"
-indexinfo[0].command[50].indexname "numreview"
-indexinfo[0].command[50].command "numerical"
-indexinfo[0].command[51].indexname "bgnsellers"
-indexinfo[0].command[51].command "index"
-indexinfo[0].command[52].indexname "bgnsellers"
-indexinfo[0].command[52].command "numerical"
-indexinfo[0].command[53].indexname "image"
+indexinfo[0].command[49].indexname "categories"
+indexinfo[0].command[49].command "lowercase"
+indexinfo[0].command[50].indexname "categories"
+indexinfo[0].command[50].command "stem:SHORTEST"
+indexinfo[0].command[51].indexname "categories"
+indexinfo[0].command[51].command "normalize"
+indexinfo[0].command[52].indexname "categories"
+indexinfo[0].command[52].command "plain-tokens"
+indexinfo[0].command[53].indexname "data"
indexinfo[0].command[53].command "index"
-indexinfo[0].command[54].indexname "artist"
+indexinfo[0].command[54].indexname "numreview"
indexinfo[0].command[54].command "index"
-indexinfo[0].command[55].indexname "artist"
-indexinfo[0].command[55].command "lowercase"
-indexinfo[0].command[56].indexname "artist"
-indexinfo[0].command[56].command "stem:SHORTEST"
-indexinfo[0].command[57].indexname "artist"
-indexinfo[0].command[57].command "normalize"
-indexinfo[0].command[58].indexname "artistspid"
+indexinfo[0].command[55].indexname "numreview"
+indexinfo[0].command[55].command "numerical"
+indexinfo[0].command[56].indexname "bgnsellers"
+indexinfo[0].command[56].command "index"
+indexinfo[0].command[57].indexname "bgnsellers"
+indexinfo[0].command[57].command "numerical"
+indexinfo[0].command[58].indexname "image"
indexinfo[0].command[58].command "index"
-indexinfo[0].command[59].indexname "title"
+indexinfo[0].command[59].indexname "artist"
indexinfo[0].command[59].command "index"
-indexinfo[0].command[60].indexname "title"
+indexinfo[0].command[60].indexname "artist"
indexinfo[0].command[60].command "lowercase"
-indexinfo[0].command[61].indexname "title"
+indexinfo[0].command[61].indexname "artist"
indexinfo[0].command[61].command "stem:SHORTEST"
-indexinfo[0].command[62].indexname "title"
+indexinfo[0].command[62].indexname "artist"
indexinfo[0].command[62].command "normalize"
-indexinfo[0].command[63].indexname "newestedition"
-indexinfo[0].command[63].command "index"
-indexinfo[0].command[64].indexname "newestedition"
-indexinfo[0].command[64].command "attribute"
-indexinfo[0].command[65].indexname "newestedition"
-indexinfo[0].command[65].command "numerical"
-indexinfo[0].command[66].indexname "bgnpto"
-indexinfo[0].command[66].command "index"
-indexinfo[0].command[67].indexname "year"
-indexinfo[0].command[67].command "index"
-indexinfo[0].command[68].indexname "year"
-indexinfo[0].command[68].command "attribute"
-indexinfo[0].command[69].indexname "year"
-indexinfo[0].command[69].command "numerical"
-indexinfo[0].command[70].indexname "did"
+indexinfo[0].command[63].indexname "artist"
+indexinfo[0].command[63].command "plain-tokens"
+indexinfo[0].command[64].indexname "artistspid"
+indexinfo[0].command[64].command "index"
+indexinfo[0].command[65].indexname "title"
+indexinfo[0].command[65].command "index"
+indexinfo[0].command[66].indexname "title"
+indexinfo[0].command[66].command "lowercase"
+indexinfo[0].command[67].indexname "title"
+indexinfo[0].command[67].command "stem:SHORTEST"
+indexinfo[0].command[68].indexname "title"
+indexinfo[0].command[68].command "normalize"
+indexinfo[0].command[69].indexname "title"
+indexinfo[0].command[69].command "plain-tokens"
+indexinfo[0].command[70].indexname "newestedition"
indexinfo[0].command[70].command "index"
-indexinfo[0].command[71].indexname "did"
+indexinfo[0].command[71].indexname "newestedition"
indexinfo[0].command[71].command "attribute"
-indexinfo[0].command[72].indexname "did"
+indexinfo[0].command[72].indexname "newestedition"
indexinfo[0].command[72].command "numerical"
-indexinfo[0].command[73].indexname "scorekey"
+indexinfo[0].command[73].indexname "bgnpto"
indexinfo[0].command[73].command "index"
-indexinfo[0].command[74].indexname "scorekey"
-indexinfo[0].command[74].command "numerical"
-indexinfo[0].command[75].indexname "cbid"
-indexinfo[0].command[75].command "index"
-indexinfo[0].command[76].indexname "cbid"
-indexinfo[0].command[76].command "attribute"
-indexinfo[0].command[77].indexname "cbid"
-indexinfo[0].command[77].command "numerical"
-indexinfo[0].command[78].indexname "metalvalue"
-indexinfo[0].command[78].command "index"
-indexinfo[0].command[79].indexname "hiphopvalue"
-indexinfo[0].command[79].command "index"
-indexinfo[0].command[80].indexname "powermetalvalue"
+indexinfo[0].command[74].indexname "year"
+indexinfo[0].command[74].command "index"
+indexinfo[0].command[75].indexname "year"
+indexinfo[0].command[75].command "attribute"
+indexinfo[0].command[76].indexname "year"
+indexinfo[0].command[76].command "numerical"
+indexinfo[0].command[77].indexname "did"
+indexinfo[0].command[77].command "index"
+indexinfo[0].command[78].indexname "did"
+indexinfo[0].command[78].command "attribute"
+indexinfo[0].command[79].indexname "did"
+indexinfo[0].command[79].command "numerical"
+indexinfo[0].command[80].indexname "scorekey"
indexinfo[0].command[80].command "index"
-indexinfo[0].command[81].indexname "powermetalvalue"
-indexinfo[0].command[81].command "lowercase"
-indexinfo[0].command[82].indexname "powermetalvalue"
-indexinfo[0].command[82].command "stem:SHORTEST"
-indexinfo[0].command[83].indexname "powermetalvalue"
-indexinfo[0].command[83].command "normalize"
-indexinfo[0].command[84].indexname "progvalue"
-indexinfo[0].command[84].command "index"
-indexinfo[0].command[85].indexname "progvalue"
-indexinfo[0].command[85].command "lowercase"
-indexinfo[0].command[86].indexname "progvalue"
-indexinfo[0].command[86].command "stem:SHORTEST"
-indexinfo[0].command[87].indexname "progvalue"
-indexinfo[0].command[87].command "normalize"
-indexinfo[0].command[88].indexname "hiphopvalue_arr"
-indexinfo[0].command[88].command "index"
-indexinfo[0].command[89].indexname "hiphopvalue_arr"
-indexinfo[0].command[89].command "multivalue"
-indexinfo[0].command[90].indexname "hiphopvalue_arr"
-indexinfo[0].command[90].command "attribute"
-indexinfo[0].command[91].indexname "hiphopvalue_arr"
-indexinfo[0].command[91].command "word"
-indexinfo[0].command[92].indexname "metalvalue_arr"
+indexinfo[0].command[81].indexname "scorekey"
+indexinfo[0].command[81].command "numerical"
+indexinfo[0].command[82].indexname "cbid"
+indexinfo[0].command[82].command "index"
+indexinfo[0].command[83].indexname "cbid"
+indexinfo[0].command[83].command "attribute"
+indexinfo[0].command[84].indexname "cbid"
+indexinfo[0].command[84].command "numerical"
+indexinfo[0].command[85].indexname "metalvalue"
+indexinfo[0].command[85].command "index"
+indexinfo[0].command[86].indexname "hiphopvalue"
+indexinfo[0].command[86].command "index"
+indexinfo[0].command[87].indexname "powermetalvalue"
+indexinfo[0].command[87].command "index"
+indexinfo[0].command[88].indexname "powermetalvalue"
+indexinfo[0].command[88].command "lowercase"
+indexinfo[0].command[89].indexname "powermetalvalue"
+indexinfo[0].command[89].command "stem:SHORTEST"
+indexinfo[0].command[90].indexname "powermetalvalue"
+indexinfo[0].command[90].command "normalize"
+indexinfo[0].command[91].indexname "powermetalvalue"
+indexinfo[0].command[91].command "plain-tokens"
+indexinfo[0].command[92].indexname "progvalue"
indexinfo[0].command[92].command "index"
-indexinfo[0].command[93].indexname "metalvalue_arr"
-indexinfo[0].command[93].command "multivalue"
-indexinfo[0].command[94].indexname "metalvalue_arr"
-indexinfo[0].command[94].command "attribute"
-indexinfo[0].command[95].indexname "metalvalue_arr"
-indexinfo[0].command[95].command "word"
-indexinfo[0].command[96].indexname "rankfeatures"
-indexinfo[0].command[96].command "index"
-indexinfo[0].command[97].indexname "summaryfeatures"
+indexinfo[0].command[93].indexname "progvalue"
+indexinfo[0].command[93].command "lowercase"
+indexinfo[0].command[94].indexname "progvalue"
+indexinfo[0].command[94].command "stem:SHORTEST"
+indexinfo[0].command[95].indexname "progvalue"
+indexinfo[0].command[95].command "normalize"
+indexinfo[0].command[96].indexname "progvalue"
+indexinfo[0].command[96].command "plain-tokens"
+indexinfo[0].command[97].indexname "hiphopvalue_arr"
indexinfo[0].command[97].command "index"
-indexinfo[0].command[98].indexname "bgndata"
-indexinfo[0].command[98].command "dynteaser"
-indexinfo[0].command[29].indexname "ew"
-indexinfo[0].command[29].command "index"
-indexinfo[0].command[30].indexname "ew"
-indexinfo[0].command[30].command "lowercase"
-indexinfo[0].command[31].indexname "ew"
-indexinfo[0].command[31].command "stem:SHORTEST"
-indexinfo[0].command[32].indexname "ew"
-indexinfo[0].command[102].indexname "ew"
-indexinfo[0].command[102].command "highlight"
-indexinfo[0].command[32].command "normalize"
-indexinfo[0].command[100].indexname "song"
-indexinfo[0].command[100].command "dynteaser"
-indexinfo[0].command[101].indexname "bgnpto"
-indexinfo[0].command[101].command "dynteaser"
-indexinfo[0].command[102].indexname "bgnpto"
-indexinfo[0].command[102].command "highlight" \ No newline at end of file
+indexinfo[0].command[98].indexname "hiphopvalue_arr"
+indexinfo[0].command[98].command "multivalue"
+indexinfo[0].command[99].indexname "hiphopvalue_arr"
+indexinfo[0].command[99].command "attribute"
+indexinfo[0].command[100].indexname "hiphopvalue_arr"
+indexinfo[0].command[100].command "word"
+indexinfo[0].command[101].indexname "metalvalue_arr"
+indexinfo[0].command[101].command "index"
+indexinfo[0].command[102].indexname "metalvalue_arr"
+indexinfo[0].command[102].command "multivalue"
+indexinfo[0].command[103].indexname "metalvalue_arr"
+indexinfo[0].command[103].command "attribute"
+indexinfo[0].command[104].indexname "metalvalue_arr"
+indexinfo[0].command[104].command "word"
+indexinfo[0].command[105].indexname "rankfeatures"
+indexinfo[0].command[105].command "index"
+indexinfo[0].command[106].indexname "summaryfeatures"
+indexinfo[0].command[106].command "index"
+indexinfo[0].command[107].indexname "bgndata"
+indexinfo[0].command[107].command "dynteaser"
+indexinfo[0].command[108].indexname "ew"
+indexinfo[0].command[108].command "highlight"
+indexinfo[0].command[109].indexname "song"
+indexinfo[0].command[109].command "dynteaser"
+indexinfo[0].command[110].indexname "bgnpto"
+indexinfo[0].command[110].command "dynteaser"
+indexinfo[0].command[111].indexname "bgnpto"
+indexinfo[0].command[111].command "highlight"
+indexinfo[0].command[112].indexname "default"
+indexinfo[0].command[112].command "lowercase"
+indexinfo[0].command[113].indexname "default"
+indexinfo[0].command[113].command "index"
+indexinfo[0].command[114].indexname "default"
+indexinfo[0].command[114].command "plain-tokens"
+indexinfo[0].command[115].indexname "default"
+indexinfo[0].command[115].command "stem:SHORTEST"
+indexinfo[0].command[116].indexname "default"
+indexinfo[0].command[116].command "normalize" \ No newline at end of file
diff --git a/config-model/src/test/derived/music/rank-profiles.cfg b/config-model/src/test/derived/music/rank-profiles.cfg
index e2452a670a0..7c5e336e122 100644
--- a/config-model/src/test/derived/music/rank-profiles.cfg
+++ b/config-model/src/test/derived/music/rank-profiles.cfg
@@ -15,10 +15,10 @@ rankprofile[0].fef.property[6].name "nativeProximity.proximityTable.progvalue"
rankprofile[0].fef.property[6].value "linear(0,0)"
rankprofile[0].fef.property[7].name "nativeProximity.reverseProximityTable.progvalue"
rankprofile[0].fef.property[7].value "linear(0,0)"
-rankprofile[0].fef.property[9].name "vespa.isfilterfield.progvalue"
+rankprofile[0].fef.property[8].name "vespa.isfilterfield.progvalue"
+rankprofile[0].fef.property[8].value "true"
+rankprofile[0].fef.property[9].name "vespa.isfilterfield.powermetalvalue"
rankprofile[0].fef.property[9].value "true"
-rankprofile[0].fef.property[10].name "vespa.isfilterfield.powermetalvalue"
-rankprofile[0].fef.property[10].value "true"
rankprofile[1].name "unranked"
rankprofile[1].fef.property[0].name "vespa.rank.firstphase"
rankprofile[1].fef.property[0].value "value(0)"
@@ -28,7 +28,7 @@ rankprofile[1].fef.property[2].name "vespa.hitcollector.arraysize"
rankprofile[1].fef.property[2].value "0"
rankprofile[1].fef.property[3].name "vespa.dump.ignoredefaultfeatures"
rankprofile[1].fef.property[3].value "true"
-rankprofile[1].fef.property[5].name "vespa.isfilterfield.progvalue"
-rankprofile[1].fef.property[5].value "true"
-rankprofile[1].fef.property[6].name "vespa.isfilterfield.powermetalvalue"
-rankprofile[1].fef.property[6].value "true" \ No newline at end of file
+rankprofile[1].fef.property[4].name "vespa.isfilterfield.progvalue"
+rankprofile[1].fef.property[4].value "true"
+rankprofile[1].fef.property[5].name "vespa.isfilterfield.powermetalvalue"
+rankprofile[1].fef.property[5].value "true" \ No newline at end of file
diff --git a/config-model/src/test/derived/newrank/index-info.cfg b/config-model/src/test/derived/newrank/index-info.cfg
index a74a7a3de08..91a509cc727 100644
--- a/config-model/src/test/derived/newrank/index-info.cfg
+++ b/config-model/src/test/derived/newrank/index-info.cfg
@@ -19,163 +19,179 @@ indexinfo[0].command[8].indexname "pto"
indexinfo[0].command[8].command "numerical"
indexinfo[0].command[9].indexname "keys"
indexinfo[0].command[9].command "index"
-indexinfo[0].command[10].indexname "default"
-indexinfo[0].command[10].command "index"
+indexinfo[0].command[10].indexname "keys"
+indexinfo[0].command[10].command "lowercase"
indexinfo[0].command[11].indexname "keys"
-indexinfo[0].command[11].command "lowercase"
-indexinfo[0].command[12].indexname "default"
-indexinfo[0].command[12].command "lowercase"
+indexinfo[0].command[11].command "stem:SHORTEST"
+indexinfo[0].command[12].indexname "keys"
+indexinfo[0].command[12].command "normalize"
indexinfo[0].command[13].indexname "keys"
-indexinfo[0].command[13].command "stem:SHORTEST"
-indexinfo[0].command[14].indexname "default"
-indexinfo[0].command[14].command "stem:SHORTEST"
-indexinfo[0].command[15].indexname "keys"
-indexinfo[0].command[15].command "normalize"
-indexinfo[0].command[16].indexname "default"
-indexinfo[0].command[16].command "normalize"
-indexinfo[0].command[17].indexname "mid"
+indexinfo[0].command[13].command "plain-tokens"
+indexinfo[0].command[14].indexname "mid"
+indexinfo[0].command[14].command "index"
+indexinfo[0].command[15].indexname "mid"
+indexinfo[0].command[15].command "attribute"
+indexinfo[0].command[16].indexname "mid"
+indexinfo[0].command[16].command "numerical"
+indexinfo[0].command[17].indexname "ew"
indexinfo[0].command[17].command "index"
-indexinfo[0].command[18].indexname "mid"
-indexinfo[0].command[18].command "attribute"
-indexinfo[0].command[19].indexname "mid"
-indexinfo[0].command[19].command "numerical"
-indexinfo[0].command[20].indexname "surl"
-indexinfo[0].command[20].command "index"
-indexinfo[0].command[21].indexname "userrate"
-indexinfo[0].command[21].command "index"
-indexinfo[0].command[22].indexname "userrate"
-indexinfo[0].command[22].command "numerical"
-indexinfo[0].command[23].indexname "pid"
+indexinfo[0].command[18].indexname "ew"
+indexinfo[0].command[18].command "lowercase"
+indexinfo[0].command[19].indexname "ew"
+indexinfo[0].command[19].command "stem:SHORTEST"
+indexinfo[0].command[20].indexname "ew"
+indexinfo[0].command[20].command "normalize"
+indexinfo[0].command[21].indexname "ew"
+indexinfo[0].command[21].command "plain-tokens"
+indexinfo[0].command[22].indexname "surl"
+indexinfo[0].command[22].command "index"
+indexinfo[0].command[23].indexname "userrate"
indexinfo[0].command[23].command "index"
-indexinfo[0].command[24].indexname "weight"
-indexinfo[0].command[24].command "index"
-indexinfo[0].command[25].indexname "weight"
-indexinfo[0].command[25].command "attribute"
+indexinfo[0].command[24].indexname "userrate"
+indexinfo[0].command[24].command "numerical"
+indexinfo[0].command[25].indexname "pid"
+indexinfo[0].command[25].command "index"
indexinfo[0].command[26].indexname "weight"
-indexinfo[0].command[26].command "numerical"
-indexinfo[0].command[27].indexname "url"
-indexinfo[0].command[27].command "index"
-indexinfo[0].command[28].indexname "isbn"
-indexinfo[0].command[28].command "index"
-indexinfo[0].command[29].indexname "fmt"
+indexinfo[0].command[26].command "index"
+indexinfo[0].command[27].indexname "weight"
+indexinfo[0].command[27].command "attribute"
+indexinfo[0].command[28].indexname "weight"
+indexinfo[0].command[28].command "numerical"
+indexinfo[0].command[29].indexname "url"
indexinfo[0].command[29].command "index"
-indexinfo[0].command[30].indexname "fmt"
-indexinfo[0].command[30].command "lowercase"
+indexinfo[0].command[30].indexname "isbn"
+indexinfo[0].command[30].command "index"
indexinfo[0].command[31].indexname "fmt"
-indexinfo[0].command[31].command "stem:SHORTEST"
+indexinfo[0].command[31].command "index"
indexinfo[0].command[32].indexname "fmt"
-indexinfo[0].command[32].command "normalize"
-indexinfo[0].command[33].indexname "albumid"
-indexinfo[0].command[33].command "index"
-indexinfo[0].command[34].indexname "disp_song"
-indexinfo[0].command[34].command "index"
-indexinfo[0].command[35].indexname "song"
-indexinfo[0].command[35].command "index"
-indexinfo[0].command[36].indexname "song"
-indexinfo[0].command[36].command "lowercase"
-indexinfo[0].command[37].indexname "song"
-indexinfo[0].command[37].command "stem:SHORTEST"
+indexinfo[0].command[32].command "lowercase"
+indexinfo[0].command[33].indexname "fmt"
+indexinfo[0].command[33].command "stem:SHORTEST"
+indexinfo[0].command[34].indexname "fmt"
+indexinfo[0].command[34].command "normalize"
+indexinfo[0].command[35].indexname "fmt"
+indexinfo[0].command[35].command "plain-tokens"
+indexinfo[0].command[36].indexname "albumid"
+indexinfo[0].command[36].command "index"
+indexinfo[0].command[37].indexname "disp_song"
+indexinfo[0].command[37].command "index"
indexinfo[0].command[38].indexname "song"
-indexinfo[0].command[38].command "normalize"
-indexinfo[0].command[39].indexname "pfrom"
-indexinfo[0].command[39].command "index"
-indexinfo[0].command[40].indexname "pfrom"
-indexinfo[0].command[40].command "numerical"
-indexinfo[0].command[41].indexname "bgnpfrom"
-indexinfo[0].command[41].command "index"
-indexinfo[0].command[42].indexname "bgnpfrom"
-indexinfo[0].command[42].command "attribute"
-indexinfo[0].command[43].indexname "bgnpfrom"
-indexinfo[0].command[43].command "numerical"
-indexinfo[0].command[44].indexname "categories"
-indexinfo[0].command[44].command "index"
-indexinfo[0].command[45].indexname "categories"
-indexinfo[0].command[45].command "lowercase"
-indexinfo[0].command[46].indexname "categories"
-indexinfo[0].command[46].command "stem:SHORTEST"
-indexinfo[0].command[47].indexname "categories"
-indexinfo[0].command[47].command "normalize"
-indexinfo[0].command[48].indexname "data"
+indexinfo[0].command[38].command "index"
+indexinfo[0].command[39].indexname "song"
+indexinfo[0].command[39].command "lowercase"
+indexinfo[0].command[40].indexname "song"
+indexinfo[0].command[40].command "stem:SHORTEST"
+indexinfo[0].command[41].indexname "song"
+indexinfo[0].command[41].command "normalize"
+indexinfo[0].command[42].indexname "song"
+indexinfo[0].command[42].command "plain-tokens"
+indexinfo[0].command[43].indexname "pfrom"
+indexinfo[0].command[43].command "index"
+indexinfo[0].command[44].indexname "pfrom"
+indexinfo[0].command[44].command "numerical"
+indexinfo[0].command[45].indexname "bgnpfrom"
+indexinfo[0].command[45].command "index"
+indexinfo[0].command[46].indexname "bgnpfrom"
+indexinfo[0].command[46].command "attribute"
+indexinfo[0].command[47].indexname "bgnpfrom"
+indexinfo[0].command[47].command "numerical"
+indexinfo[0].command[48].indexname "categories"
indexinfo[0].command[48].command "index"
-indexinfo[0].command[49].indexname "numreview"
-indexinfo[0].command[49].command "index"
-indexinfo[0].command[50].indexname "numreview"
-indexinfo[0].command[50].command "numerical"
-indexinfo[0].command[51].indexname "bgnsellers"
-indexinfo[0].command[51].command "index"
-indexinfo[0].command[52].indexname "bgnsellers"
-indexinfo[0].command[52].command "numerical"
-indexinfo[0].command[53].indexname "image"
+indexinfo[0].command[49].indexname "categories"
+indexinfo[0].command[49].command "lowercase"
+indexinfo[0].command[50].indexname "categories"
+indexinfo[0].command[50].command "stem:SHORTEST"
+indexinfo[0].command[51].indexname "categories"
+indexinfo[0].command[51].command "normalize"
+indexinfo[0].command[52].indexname "categories"
+indexinfo[0].command[52].command "plain-tokens"
+indexinfo[0].command[53].indexname "data"
indexinfo[0].command[53].command "index"
-indexinfo[0].command[54].indexname "artist"
+indexinfo[0].command[54].indexname "numreview"
indexinfo[0].command[54].command "index"
-indexinfo[0].command[55].indexname "artist"
-indexinfo[0].command[55].command "lowercase"
-indexinfo[0].command[56].indexname "artist"
-indexinfo[0].command[56].command "stem:SHORTEST"
-indexinfo[0].command[57].indexname "artist"
-indexinfo[0].command[57].command "normalize"
-indexinfo[0].command[58].indexname "artistspid"
+indexinfo[0].command[55].indexname "numreview"
+indexinfo[0].command[55].command "numerical"
+indexinfo[0].command[56].indexname "bgnsellers"
+indexinfo[0].command[56].command "index"
+indexinfo[0].command[57].indexname "bgnsellers"
+indexinfo[0].command[57].command "numerical"
+indexinfo[0].command[58].indexname "image"
indexinfo[0].command[58].command "index"
-indexinfo[0].command[59].indexname "title"
+indexinfo[0].command[59].indexname "artist"
indexinfo[0].command[59].command "index"
-indexinfo[0].command[60].indexname "title"
+indexinfo[0].command[60].indexname "artist"
indexinfo[0].command[60].command "lowercase"
-indexinfo[0].command[61].indexname "title"
+indexinfo[0].command[61].indexname "artist"
indexinfo[0].command[61].command "stem:SHORTEST"
-indexinfo[0].command[62].indexname "title"
+indexinfo[0].command[62].indexname "artist"
indexinfo[0].command[62].command "normalize"
-indexinfo[0].command[63].indexname "newestedition"
-indexinfo[0].command[63].command "index"
-indexinfo[0].command[64].indexname "newestedition"
-indexinfo[0].command[64].command "attribute"
-indexinfo[0].command[65].indexname "newestedition"
-indexinfo[0].command[65].command "numerical"
-indexinfo[0].command[66].indexname "bgnpto"
-indexinfo[0].command[66].command "index"
-indexinfo[0].command[67].indexname "year"
-indexinfo[0].command[67].command "index"
-indexinfo[0].command[68].indexname "year"
-indexinfo[0].command[68].command "attribute"
-indexinfo[0].command[69].indexname "year"
-indexinfo[0].command[69].command "numerical"
-indexinfo[0].command[70].indexname "did"
+indexinfo[0].command[63].indexname "artist"
+indexinfo[0].command[63].command "plain-tokens"
+indexinfo[0].command[64].indexname "artistspid"
+indexinfo[0].command[64].command "index"
+indexinfo[0].command[65].indexname "title"
+indexinfo[0].command[65].command "index"
+indexinfo[0].command[66].indexname "title"
+indexinfo[0].command[66].command "lowercase"
+indexinfo[0].command[67].indexname "title"
+indexinfo[0].command[67].command "stem:SHORTEST"
+indexinfo[0].command[68].indexname "title"
+indexinfo[0].command[68].command "normalize"
+indexinfo[0].command[69].indexname "title"
+indexinfo[0].command[69].command "plain-tokens"
+indexinfo[0].command[70].indexname "newestedition"
indexinfo[0].command[70].command "index"
-indexinfo[0].command[71].indexname "did"
+indexinfo[0].command[71].indexname "newestedition"
indexinfo[0].command[71].command "attribute"
-indexinfo[0].command[72].indexname "did"
+indexinfo[0].command[72].indexname "newestedition"
indexinfo[0].command[72].command "numerical"
-indexinfo[0].command[73].indexname "scorekey"
+indexinfo[0].command[73].indexname "bgnpto"
indexinfo[0].command[73].command "index"
-indexinfo[0].command[74].indexname "scorekey"
-indexinfo[0].command[74].command "attribute"
-indexinfo[0].command[75].indexname "scorekey"
-indexinfo[0].command[75].command "numerical"
-indexinfo[0].command[76].indexname "cbid"
-indexinfo[0].command[76].command "index"
-indexinfo[0].command[77].indexname "cbid"
-indexinfo[0].command[77].command "attribute"
-indexinfo[0].command[78].indexname "cbid"
-indexinfo[0].command[78].command "numerical"
-indexinfo[0].command[79].indexname "rankfeatures"
-indexinfo[0].command[79].command "index"
-indexinfo[0].command[80].indexname "summaryfeatures"
+indexinfo[0].command[74].indexname "year"
+indexinfo[0].command[74].command "index"
+indexinfo[0].command[75].indexname "year"
+indexinfo[0].command[75].command "attribute"
+indexinfo[0].command[76].indexname "year"
+indexinfo[0].command[76].command "numerical"
+indexinfo[0].command[77].indexname "did"
+indexinfo[0].command[77].command "index"
+indexinfo[0].command[78].indexname "did"
+indexinfo[0].command[78].command "attribute"
+indexinfo[0].command[79].indexname "did"
+indexinfo[0].command[79].command "numerical"
+indexinfo[0].command[80].indexname "scorekey"
indexinfo[0].command[80].command "index"
-indexinfo[0].command[81].indexname "bgndata"
-indexinfo[0].command[81].command "dynteaser"
-indexinfo[0].command[82].indexname "ew"
-indexinfo[0].command[82].command "highlight"
-indexinfo[0].command[83].indexname "song"
-indexinfo[0].command[83].command "dynteaser"
-indexinfo[0].command[84].indexname "bgnpto"
-indexinfo[0].command[84].command "dynteaser"
-indexinfo[0].command[85].indexname "bgnpto"
-indexinfo[0].command[85].command "highlight"
-indexinfo[0].command[9].indexname "ew"
-indexinfo[0].command[9].command "index"
-indexinfo[0].command[11].indexname "ew"
-indexinfo[0].command[11].command "lowercase"
-indexinfo[0].command[13].indexname "ew"
-indexinfo[0].command[13].command "stem:SHORTEST"
-indexinfo[0].command[15].indexname "ew"
-indexinfo[0].command[15].command "normalize"
+indexinfo[0].command[81].indexname "scorekey"
+indexinfo[0].command[81].command "attribute"
+indexinfo[0].command[82].indexname "scorekey"
+indexinfo[0].command[82].command "numerical"
+indexinfo[0].command[83].indexname "cbid"
+indexinfo[0].command[83].command "index"
+indexinfo[0].command[84].indexname "cbid"
+indexinfo[0].command[84].command "attribute"
+indexinfo[0].command[85].indexname "cbid"
+indexinfo[0].command[85].command "numerical"
+indexinfo[0].command[86].indexname "rankfeatures"
+indexinfo[0].command[86].command "index"
+indexinfo[0].command[87].indexname "summaryfeatures"
+indexinfo[0].command[87].command "index"
+indexinfo[0].command[88].indexname "bgndata"
+indexinfo[0].command[88].command "dynteaser"
+indexinfo[0].command[89].indexname "ew"
+indexinfo[0].command[89].command "highlight"
+indexinfo[0].command[90].indexname "song"
+indexinfo[0].command[90].command "dynteaser"
+indexinfo[0].command[91].indexname "bgnpto"
+indexinfo[0].command[91].command "dynteaser"
+indexinfo[0].command[92].indexname "bgnpto"
+indexinfo[0].command[92].command "highlight"
+indexinfo[0].command[93].indexname "default"
+indexinfo[0].command[93].command "lowercase"
+indexinfo[0].command[94].indexname "default"
+indexinfo[0].command[94].command "index"
+indexinfo[0].command[95].indexname "default"
+indexinfo[0].command[95].command "plain-tokens"
+indexinfo[0].command[96].indexname "default"
+indexinfo[0].command[96].command "stem:SHORTEST"
+indexinfo[0].command[97].indexname "default"
+indexinfo[0].command[97].command "normalize" \ No newline at end of file
diff --git a/config-model/src/test/derived/prefixexactattribute/index-info.cfg b/config-model/src/test/derived/prefixexactattribute/index-info.cfg
index 74bf641990c..f6a6b7ab32d 100644
--- a/config-model/src/test/derived/prefixexactattribute/index-info.cfg
+++ b/config-model/src/test/derived/prefixexactattribute/index-info.cfg
@@ -11,31 +11,33 @@ indexinfo[0].command[4].indexname "indexfield0"
indexinfo[0].command[4].command "stem:SHORTEST"
indexinfo[0].command[5].indexname "indexfield0"
indexinfo[0].command[5].command "normalize"
-indexinfo[0].command[6].indexname "attributefield1"
-indexinfo[0].command[6].command "index"
+indexinfo[0].command[6].indexname "indexfield0"
+indexinfo[0].command[6].command "plain-tokens"
indexinfo[0].command[7].indexname "attributefield1"
-indexinfo[0].command[7].command "attribute"
+indexinfo[0].command[7].command "index"
indexinfo[0].command[8].indexname "attributefield1"
-indexinfo[0].command[8].command "exact @"
-indexinfo[0].command[9].indexname "attributefield2"
-indexinfo[0].command[9].command "index"
+indexinfo[0].command[8].command "attribute"
+indexinfo[0].command[9].indexname "attributefield1"
+indexinfo[0].command[9].command "exact @"
indexinfo[0].command[10].indexname "attributefield2"
-indexinfo[0].command[10].command "attribute"
+indexinfo[0].command[10].command "index"
indexinfo[0].command[11].indexname "attributefield2"
-indexinfo[0].command[11].command "exact @"
-indexinfo[0].command[12].indexname "indexfield1"
-indexinfo[0].command[12].command "index"
+indexinfo[0].command[11].command "attribute"
+indexinfo[0].command[12].indexname "attributefield2"
+indexinfo[0].command[12].command "exact @"
indexinfo[0].command[13].indexname "indexfield1"
-indexinfo[0].command[13].command "lowercase"
+indexinfo[0].command[13].command "index"
indexinfo[0].command[14].indexname "indexfield1"
-indexinfo[0].command[14].command "exact @"
-indexinfo[0].command[15].indexname "indexfield2"
-indexinfo[0].command[15].command "index"
+indexinfo[0].command[14].command "lowercase"
+indexinfo[0].command[15].indexname "indexfield1"
+indexinfo[0].command[15].command "exact @"
indexinfo[0].command[16].indexname "indexfield2"
-indexinfo[0].command[16].command "lowercase"
+indexinfo[0].command[16].command "index"
indexinfo[0].command[17].indexname "indexfield2"
-indexinfo[0].command[17].command "exact @"
-indexinfo[0].command[18].indexname "rankfeatures"
-indexinfo[0].command[18].command "index"
-indexinfo[0].command[19].indexname "summaryfeatures"
-indexinfo[0].command[19].command "index" \ No newline at end of file
+indexinfo[0].command[17].command "lowercase"
+indexinfo[0].command[18].indexname "indexfield2"
+indexinfo[0].command[18].command "exact @"
+indexinfo[0].command[19].indexname "rankfeatures"
+indexinfo[0].command[19].command "index"
+indexinfo[0].command[20].indexname "summaryfeatures"
+indexinfo[0].command[20].command "index" \ No newline at end of file
diff --git a/config-model/src/test/derived/rankprofiles/rank-profiles.cfg b/config-model/src/test/derived/rankprofiles/rank-profiles.cfg
index 5cfa10aa9c7..3bbe0978541 100644
--- a/config-model/src/test/derived/rankprofiles/rank-profiles.cfg
+++ b/config-model/src/test/derived/rankprofiles/rank-profiles.cfg
@@ -95,4 +95,4 @@ rankprofile[9].fef.property[3].value "0.2"
rankprofile[9].fef.property[4].name "vespa.matchphase.degradation.samplepercentage"
rankprofile[9].fef.property[4].value "0.7"
rankprofile[9].fef.property[5].name "vespa.matchphase.degradation.postfiltermultiplier"
-rankprofile[9].fef.property[5].value "3.4"
+rankprofile[9].fef.property[5].value "3.4" \ No newline at end of file
diff --git a/config-model/src/test/derived/ranktypes/index-info.cfg b/config-model/src/test/derived/ranktypes/index-info.cfg
index 464f7a73676..d3cbc4597ff 100644
--- a/config-model/src/test/derived/ranktypes/index-info.cfg
+++ b/config-model/src/test/derived/ranktypes/index-info.cfg
@@ -11,37 +11,47 @@ indexinfo[0].command[4].indexname "title"
indexinfo[0].command[4].command "stem:SHORTEST"
indexinfo[0].command[5].indexname "title"
indexinfo[0].command[5].command "normalize"
-indexinfo[0].command[6].indexname "descr"
-indexinfo[0].command[6].command "index"
+indexinfo[0].command[6].indexname "title"
+indexinfo[0].command[6].command "plain-tokens"
indexinfo[0].command[7].indexname "descr"
-indexinfo[0].command[7].command "lowercase"
+indexinfo[0].command[7].command "index"
indexinfo[0].command[8].indexname "descr"
-indexinfo[0].command[8].command "stem:SHORTEST"
+indexinfo[0].command[8].command "lowercase"
indexinfo[0].command[9].indexname "descr"
-indexinfo[0].command[9].command "normalize"
-indexinfo[0].command[10].indexname "keywords"
-indexinfo[0].command[10].command "index"
-indexinfo[0].command[11].indexname "keywords"
-indexinfo[0].command[11].command "lowercase"
+indexinfo[0].command[9].command "stem:SHORTEST"
+indexinfo[0].command[10].indexname "descr"
+indexinfo[0].command[10].command "normalize"
+indexinfo[0].command[11].indexname "descr"
+indexinfo[0].command[11].command "plain-tokens"
indexinfo[0].command[12].indexname "keywords"
-indexinfo[0].command[12].command "stem:SHORTEST"
+indexinfo[0].command[12].command "index"
indexinfo[0].command[13].indexname "keywords"
-indexinfo[0].command[13].command "normalize"
-indexinfo[0].command[14].indexname "identity"
-indexinfo[0].command[14].command "index"
-indexinfo[0].command[15].indexname "identity"
-indexinfo[0].command[15].command "lowercase"
-indexinfo[0].command[16].indexname "identity"
-indexinfo[0].command[16].command "stem:SHORTEST"
+indexinfo[0].command[13].command "lowercase"
+indexinfo[0].command[14].indexname "keywords"
+indexinfo[0].command[14].command "stem:SHORTEST"
+indexinfo[0].command[15].indexname "keywords"
+indexinfo[0].command[15].command "normalize"
+indexinfo[0].command[16].indexname "keywords"
+indexinfo[0].command[16].command "plain-tokens"
indexinfo[0].command[17].indexname "identity"
-indexinfo[0].command[17].command "normalize"
+indexinfo[0].command[17].command "index"
indexinfo[0].command[18].indexname "identity"
-indexinfo[0].command[18].command "literal-boost"
-indexinfo[0].command[19].indexname "identity_literal"
-indexinfo[0].command[19].command "index"
-indexinfo[0].command[20].indexname "identity_literal"
-indexinfo[0].command[20].command "lowercase"
-indexinfo[0].command[21].indexname "rankfeatures"
-indexinfo[0].command[21].command "index"
-indexinfo[0].command[22].indexname "summaryfeatures"
-indexinfo[0].command[22].command "index" \ No newline at end of file
+indexinfo[0].command[18].command "lowercase"
+indexinfo[0].command[19].indexname "identity"
+indexinfo[0].command[19].command "stem:SHORTEST"
+indexinfo[0].command[20].indexname "identity"
+indexinfo[0].command[20].command "normalize"
+indexinfo[0].command[21].indexname "identity"
+indexinfo[0].command[21].command "plain-tokens"
+indexinfo[0].command[22].indexname "identity"
+indexinfo[0].command[22].command "literal-boost"
+indexinfo[0].command[23].indexname "identity_literal"
+indexinfo[0].command[23].command "index"
+indexinfo[0].command[24].indexname "identity_literal"
+indexinfo[0].command[24].command "lowercase"
+indexinfo[0].command[25].indexname "identity_literal"
+indexinfo[0].command[25].command "plain-tokens"
+indexinfo[0].command[26].indexname "rankfeatures"
+indexinfo[0].command[26].command "index"
+indexinfo[0].command[27].indexname "summaryfeatures"
+indexinfo[0].command[27].command "index" \ No newline at end of file
diff --git a/config-model/src/test/derived/tensor/documenttypes.cfg b/config-model/src/test/derived/tensor/documenttypes.cfg
index 7c39af767f4..a3c7cb30b50 100644
--- a/config-model/src/test/derived/tensor/documenttypes.cfg
+++ b/config-model/src/test/derived/tensor/documenttypes.cfg
@@ -24,12 +24,12 @@ documenttype[0].datatype[0].sstruct.field[0].name "f1"
documenttype[0].datatype[0].sstruct.field[0].id 26661415
documenttype[0].datatype[0].sstruct.field[0].id_v6 1740179945
documenttype[0].datatype[0].sstruct.field[0].datatype 21
-documenttype[0].datatype[0].sstruct.field[2].detailedtype "tensor(x[])"
+documenttype[0].datatype[0].sstruct.field[0].detailedtype "tensor(x[])"
documenttype[0].datatype[0].sstruct.field[1].name "f2"
documenttype[0].datatype[0].sstruct.field[1].id 2080644671
documenttype[0].datatype[0].sstruct.field[1].id_v6 1424572148
documenttype[0].datatype[0].sstruct.field[1].datatype 21
-documenttype[0].datatype[0].sstruct.field[2].detailedtype "tensor(x[2],y[])"
+documenttype[0].datatype[0].sstruct.field[1].detailedtype "tensor(x[2],y[])"
documenttype[0].datatype[0].sstruct.field[2].name "f3"
documenttype[0].datatype[0].sstruct.field[2].id 1295091863
documenttype[0].datatype[0].sstruct.field[2].id_v6 1444109654
diff --git a/config-model/src/test/derived/tensor/rank-profiles.cfg b/config-model/src/test/derived/tensor/rank-profiles.cfg
index d9c6c5088c2..cd7e0802572 100644
--- a/config-model/src/test/derived/tensor/rank-profiles.cfg
+++ b/config-model/src/test/derived/tensor/rank-profiles.cfg
@@ -1,44 +1,44 @@
-rankprofile[].name "default"
-rankprofile[].fef.property[].name "vespa.type.attribute.f2"
-rankprofile[].fef.property[].value "tensor(x[2],y[])"
-rankprofile[].fef.property[].name "vespa.type.attribute.f3"
-rankprofile[].fef.property[].value "tensor(x{})"
-rankprofile[].fef.property[].name "vespa.type.attribute.f4"
-rankprofile[].fef.property[].value "tensor(x[10],y[20])"
-rankprofile[].name "unranked"
-rankprofile[].fef.property[].name "vespa.rank.firstphase"
-rankprofile[].fef.property[].value "value(0)"
-rankprofile[].fef.property[].name "vespa.hitcollector.heapsize"
-rankprofile[].fef.property[].value "0"
-rankprofile[].fef.property[].name "vespa.hitcollector.arraysize"
-rankprofile[].fef.property[].value "0"
-rankprofile[].fef.property[].name "vespa.dump.ignoredefaultfeatures"
-rankprofile[].fef.property[].value "true"
-rankprofile[].fef.property[].name "vespa.type.attribute.f2"
-rankprofile[].fef.property[].value "tensor(x[2],y[])"
-rankprofile[].fef.property[].name "vespa.type.attribute.f3"
-rankprofile[].fef.property[].value "tensor(x{})"
-rankprofile[].fef.property[].name "vespa.type.attribute.f4"
-rankprofile[].fef.property[].value "tensor(x[10],y[20])"
-rankprofile[].name "profile1"
-rankprofile[].fef.property[].name "vespa.rank.firstphase"
-rankprofile[].fef.property[].value "rankingExpression(firstphase)"
-rankprofile[].fef.property[].name "rankingExpression(firstphase).rankingScript"
-rankprofile[].fef.property[].value "map(attribute(f4), f(x)(x * x)) + reduce(tensor(x[2],y[3])(random), count) * rename(attribute(f4), (x, y), (y, x))"
-rankprofile[].fef.property[].name "vespa.type.attribute.f2"
-rankprofile[].fef.property[].value "tensor(x[2],y[])"
-rankprofile[].fef.property[].name "vespa.type.attribute.f3"
-rankprofile[].fef.property[].value "tensor(x{})"
-rankprofile[].fef.property[].name "vespa.type.attribute.f4"
-rankprofile[].fef.property[].value "tensor(x[10],y[20])"
-rankprofile[].name "profile2"
-rankprofile[].fef.property[].name "vespa.rank.firstphase"
-rankprofile[].fef.property[].value "rankingExpression(firstphase)"
-rankprofile[].fef.property[].name "rankingExpression(firstphase).rankingScript"
-rankprofile[].fef.property[].value "reduce(join(attribute(f4), tensor(x[2],y[2],z[3])((x==y)*(y==z)), f(a,b)(a * b)), sum, x)"
-rankprofile[].fef.property[].name "vespa.type.attribute.f2"
-rankprofile[].fef.property[].value "tensor(x[2],y[])"
-rankprofile[].fef.property[].name "vespa.type.attribute.f3"
-rankprofile[].fef.property[].value "tensor(x{})"
-rankprofile[].fef.property[].name "vespa.type.attribute.f4"
-rankprofile[].fef.property[].value "tensor(x[10],y[20])" \ No newline at end of file
+rankprofile[0].name "default"
+rankprofile[0].fef.property[0].name "vespa.type.attribute.f2"
+rankprofile[0].fef.property[0].value "tensor(x[2],y[])"
+rankprofile[0].fef.property[1].name "vespa.type.attribute.f3"
+rankprofile[0].fef.property[1].value "tensor(x{})"
+rankprofile[0].fef.property[2].name "vespa.type.attribute.f4"
+rankprofile[0].fef.property[2].value "tensor(x[10],y[20])"
+rankprofile[1].name "unranked"
+rankprofile[1].fef.property[0].name "vespa.rank.firstphase"
+rankprofile[1].fef.property[0].value "value(0)"
+rankprofile[1].fef.property[1].name "vespa.hitcollector.heapsize"
+rankprofile[1].fef.property[1].value "0"
+rankprofile[1].fef.property[2].name "vespa.hitcollector.arraysize"
+rankprofile[1].fef.property[2].value "0"
+rankprofile[1].fef.property[3].name "vespa.dump.ignoredefaultfeatures"
+rankprofile[1].fef.property[3].value "true"
+rankprofile[1].fef.property[4].name "vespa.type.attribute.f2"
+rankprofile[1].fef.property[4].value "tensor(x[2],y[])"
+rankprofile[1].fef.property[5].name "vespa.type.attribute.f3"
+rankprofile[1].fef.property[5].value "tensor(x{})"
+rankprofile[1].fef.property[6].name "vespa.type.attribute.f4"
+rankprofile[1].fef.property[6].value "tensor(x[10],y[20])"
+rankprofile[2].name "profile1"
+rankprofile[2].fef.property[0].name "vespa.rank.firstphase"
+rankprofile[2].fef.property[0].value "rankingExpression(firstphase)"
+rankprofile[2].fef.property[1].name "rankingExpression(firstphase).rankingScript"
+rankprofile[2].fef.property[1].value "map(attribute(f4), f(x)(x * x)) + reduce(tensor(x[2],y[3])(random), count) * rename(attribute(f4), (x, y), (y, x))"
+rankprofile[2].fef.property[2].name "vespa.type.attribute.f2"
+rankprofile[2].fef.property[2].value "tensor(x[2],y[])"
+rankprofile[2].fef.property[3].name "vespa.type.attribute.f3"
+rankprofile[2].fef.property[3].value "tensor(x{})"
+rankprofile[2].fef.property[4].name "vespa.type.attribute.f4"
+rankprofile[2].fef.property[4].value "tensor(x[10],y[20])"
+rankprofile[3].name "profile2"
+rankprofile[3].fef.property[0].name "vespa.rank.firstphase"
+rankprofile[3].fef.property[0].value "rankingExpression(firstphase)"
+rankprofile[3].fef.property[1].name "rankingExpression(firstphase).rankingScript"
+rankprofile[3].fef.property[1].value "reduce(join(attribute(f4), tensor(x[2],y[2],z[3])((x==y)*(y==z)), f(a,b)(a * b)), sum, x)"
+rankprofile[3].fef.property[2].name "vespa.type.attribute.f2"
+rankprofile[3].fef.property[2].value "tensor(x[2],y[])"
+rankprofile[3].fef.property[3].name "vespa.type.attribute.f3"
+rankprofile[3].fef.property[3].value "tensor(x{})"
+rankprofile[3].fef.property[4].name "vespa.type.attribute.f4"
+rankprofile[3].fef.property[4].value "tensor(x[10],y[20])" \ No newline at end of file
diff --git a/config-model/src/test/derived/tensor/summary.cfg b/config-model/src/test/derived/tensor/summary.cfg
index 212895d7686..3882af1b70b 100644
--- a/config-model/src/test/derived/tensor/summary.cfg
+++ b/config-model/src/test/derived/tensor/summary.cfg
@@ -1,27 +1,27 @@
defaultsummaryid 1113059691
-classes[].id 1113059691
-classes[].name "default"
-classes[].fields[].name "f1"
-classes[].fields[].type "jsonstring"
-classes[].fields[].name "f3"
-classes[].fields[].type "jsonstring"
-classes[].fields[].name "f4"
-classes[].fields[].type "jsonstring"
-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 457955124
-classes[].name "attributeprefetch"
-classes[].fields[].name "f2"
-classes[].fields[].type "jsonstring"
-classes[].fields[].name "f3"
-classes[].fields[].type "jsonstring"
-classes[].fields[].name "f4"
-classes[].fields[].type "jsonstring"
-classes[].fields[].name "rankfeatures"
-classes[].fields[].type "featuredata"
-classes[].fields[].name "summaryfeatures"
-classes[].fields[].type "featuredata" \ No newline at end of file
+classes[0].id 1113059691
+classes[0].name "default"
+classes[0].fields[0].name "f1"
+classes[0].fields[0].type "jsonstring"
+classes[0].fields[1].name "f3"
+classes[0].fields[1].type "jsonstring"
+classes[0].fields[2].name "f4"
+classes[0].fields[2].type "jsonstring"
+classes[0].fields[3].name "rankfeatures"
+classes[0].fields[3].type "featuredata"
+classes[0].fields[4].name "summaryfeatures"
+classes[0].fields[4].type "featuredata"
+classes[0].fields[5].name "documentid"
+classes[0].fields[5].type "longstring"
+classes[1].id 457955124
+classes[1].name "attributeprefetch"
+classes[1].fields[0].name "f2"
+classes[1].fields[0].type "jsonstring"
+classes[1].fields[1].name "f3"
+classes[1].fields[1].type "jsonstring"
+classes[1].fields[2].name "f4"
+classes[1].fields[2].type "jsonstring"
+classes[1].fields[3].name "rankfeatures"
+classes[1].fields[3].type "featuredata"
+classes[1].fields[4].name "summaryfeatures"
+classes[1].fields[4].type "featuredata" \ No newline at end of file
diff --git a/config-model/src/test/derived/types/index-info.cfg b/config-model/src/test/derived/types/index-info.cfg
index 85d4c884571..1a2c5632903 100644
--- a/config-model/src/test/derived/types/index-info.cfg
+++ b/config-model/src/test/derived/types/index-info.cfg
@@ -75,353 +75,359 @@ indexinfo[0].command[36].indexname "stringmapfield.key"
indexinfo[0].command[36].command "stem:SHORTEST"
indexinfo[0].command[37].indexname "stringmapfield.key"
indexinfo[0].command[37].command "normalize"
-indexinfo[0].command[38].indexname "stringmapfield.value"
-indexinfo[0].command[38].command "index"
+indexinfo[0].command[38].indexname "stringmapfield.key"
+indexinfo[0].command[38].command "plain-tokens"
indexinfo[0].command[39].indexname "stringmapfield.value"
-indexinfo[0].command[39].command "lowercase"
+indexinfo[0].command[39].command "index"
indexinfo[0].command[40].indexname "stringmapfield.value"
-indexinfo[0].command[40].command "stem:SHORTEST"
+indexinfo[0].command[40].command "lowercase"
indexinfo[0].command[41].indexname "stringmapfield.value"
-indexinfo[0].command[41].command "normalize"
-indexinfo[0].command[42].indexname "stringmapfield"
-indexinfo[0].command[42].command "index"
-indexinfo[0].command[43].indexname "stringmapfield"
-indexinfo[0].command[43].command "lowercase"
+indexinfo[0].command[41].command "stem:SHORTEST"
+indexinfo[0].command[42].indexname "stringmapfield.value"
+indexinfo[0].command[42].command "normalize"
+indexinfo[0].command[43].indexname "stringmapfield.value"
+indexinfo[0].command[43].command "plain-tokens"
indexinfo[0].command[44].indexname "stringmapfield"
-indexinfo[0].command[44].command "multivalue"
-indexinfo[0].command[45].indexname "intmapfield.key"
-indexinfo[0].command[45].command "index"
-indexinfo[0].command[46].indexname "intmapfield.value"
-indexinfo[0].command[46].command "index"
-indexinfo[0].command[47].indexname "intmapfield.value"
-indexinfo[0].command[47].command "numerical"
-indexinfo[0].command[48].indexname "intmapfield"
+indexinfo[0].command[44].command "index"
+indexinfo[0].command[45].indexname "stringmapfield"
+indexinfo[0].command[45].command "lowercase"
+indexinfo[0].command[46].indexname "stringmapfield"
+indexinfo[0].command[46].command "multivalue"
+indexinfo[0].command[47].indexname "stringmapfield"
+indexinfo[0].command[47].command "plain-tokens"
+indexinfo[0].command[48].indexname "intmapfield.key"
indexinfo[0].command[48].command "index"
-indexinfo[0].command[49].indexname "intmapfield"
-indexinfo[0].command[49].command "multivalue"
-indexinfo[0].command[50].indexname "floatmapfield.key"
-indexinfo[0].command[50].command "index"
-indexinfo[0].command[51].indexname "floatmapfield.value"
+indexinfo[0].command[49].indexname "intmapfield.value"
+indexinfo[0].command[49].command "index"
+indexinfo[0].command[50].indexname "intmapfield.value"
+indexinfo[0].command[50].command "numerical"
+indexinfo[0].command[51].indexname "intmapfield"
indexinfo[0].command[51].command "index"
-indexinfo[0].command[52].indexname "floatmapfield.value"
-indexinfo[0].command[52].command "numerical"
-indexinfo[0].command[53].indexname "floatmapfield"
+indexinfo[0].command[52].indexname "intmapfield"
+indexinfo[0].command[52].command "multivalue"
+indexinfo[0].command[53].indexname "floatmapfield.key"
indexinfo[0].command[53].command "index"
-indexinfo[0].command[54].indexname "floatmapfield"
-indexinfo[0].command[54].command "multivalue"
-indexinfo[0].command[55].indexname "longmapfield.key"
-indexinfo[0].command[55].command "index"
-indexinfo[0].command[56].indexname "longmapfield.key"
-indexinfo[0].command[56].command "numerical"
-indexinfo[0].command[57].indexname "longmapfield.value"
-indexinfo[0].command[57].command "index"
-indexinfo[0].command[58].indexname "longmapfield.value"
-indexinfo[0].command[58].command "numerical"
-indexinfo[0].command[59].indexname "longmapfield"
-indexinfo[0].command[59].command "index"
-indexinfo[0].command[60].indexname "longmapfield"
-indexinfo[0].command[60].command "multivalue"
-indexinfo[0].command[61].indexname "doublemapfield.key"
-indexinfo[0].command[61].command "index"
-indexinfo[0].command[62].indexname "doublemapfield.key"
-indexinfo[0].command[62].command "numerical"
-indexinfo[0].command[63].indexname "doublemapfield.value"
-indexinfo[0].command[63].command "index"
-indexinfo[0].command[64].indexname "doublemapfield.value"
-indexinfo[0].command[64].command "numerical"
-indexinfo[0].command[65].indexname "doublemapfield"
-indexinfo[0].command[65].command "index"
-indexinfo[0].command[66].indexname "doublemapfield"
-indexinfo[0].command[66].command "multivalue"
-indexinfo[0].command[67].indexname "arraymapfield.key"
-indexinfo[0].command[67].command "index"
-indexinfo[0].command[68].indexname "arraymapfield.value"
+indexinfo[0].command[54].indexname "floatmapfield.value"
+indexinfo[0].command[54].command "index"
+indexinfo[0].command[55].indexname "floatmapfield.value"
+indexinfo[0].command[55].command "numerical"
+indexinfo[0].command[56].indexname "floatmapfield"
+indexinfo[0].command[56].command "index"
+indexinfo[0].command[57].indexname "floatmapfield"
+indexinfo[0].command[57].command "multivalue"
+indexinfo[0].command[58].indexname "longmapfield.key"
+indexinfo[0].command[58].command "index"
+indexinfo[0].command[59].indexname "longmapfield.key"
+indexinfo[0].command[59].command "numerical"
+indexinfo[0].command[60].indexname "longmapfield.value"
+indexinfo[0].command[60].command "index"
+indexinfo[0].command[61].indexname "longmapfield.value"
+indexinfo[0].command[61].command "numerical"
+indexinfo[0].command[62].indexname "longmapfield"
+indexinfo[0].command[62].command "index"
+indexinfo[0].command[63].indexname "longmapfield"
+indexinfo[0].command[63].command "multivalue"
+indexinfo[0].command[64].indexname "doublemapfield.key"
+indexinfo[0].command[64].command "index"
+indexinfo[0].command[65].indexname "doublemapfield.key"
+indexinfo[0].command[65].command "numerical"
+indexinfo[0].command[66].indexname "doublemapfield.value"
+indexinfo[0].command[66].command "index"
+indexinfo[0].command[67].indexname "doublemapfield.value"
+indexinfo[0].command[67].command "numerical"
+indexinfo[0].command[68].indexname "doublemapfield"
indexinfo[0].command[68].command "index"
-indexinfo[0].command[69].indexname "arraymapfield.value"
+indexinfo[0].command[69].indexname "doublemapfield"
indexinfo[0].command[69].command "multivalue"
-indexinfo[0].command[70].indexname "arraymapfield"
+indexinfo[0].command[70].indexname "arraymapfield.key"
indexinfo[0].command[70].command "index"
-indexinfo[0].command[71].indexname "arraymapfield"
-indexinfo[0].command[71].command "multivalue"
-indexinfo[0].command[72].indexname "arrarr"
-indexinfo[0].command[72].command "index"
-indexinfo[0].command[73].indexname "arrarr"
-indexinfo[0].command[73].command "multivalue"
-indexinfo[0].command[74].indexname "maparr"
-indexinfo[0].command[74].command "index"
-indexinfo[0].command[75].indexname "maparr"
-indexinfo[0].command[75].command "multivalue"
-indexinfo[0].command[76].indexname "mystructfield.bytearr"
-indexinfo[0].command[76].command "index"
-indexinfo[0].command[77].indexname "mystructfield.bytearr"
-indexinfo[0].command[77].command "multivalue"
-indexinfo[0].command[78].indexname "mystructfield.mymap.key"
-indexinfo[0].command[78].command "index"
-indexinfo[0].command[79].indexname "mystructfield.mymap.value"
+indexinfo[0].command[71].indexname "arraymapfield.value"
+indexinfo[0].command[71].command "index"
+indexinfo[0].command[72].indexname "arraymapfield.value"
+indexinfo[0].command[72].command "multivalue"
+indexinfo[0].command[73].indexname "arraymapfield"
+indexinfo[0].command[73].command "index"
+indexinfo[0].command[74].indexname "arraymapfield"
+indexinfo[0].command[74].command "multivalue"
+indexinfo[0].command[75].indexname "arrarr"
+indexinfo[0].command[75].command "index"
+indexinfo[0].command[76].indexname "arrarr"
+indexinfo[0].command[76].command "multivalue"
+indexinfo[0].command[77].indexname "maparr"
+indexinfo[0].command[77].command "index"
+indexinfo[0].command[78].indexname "maparr"
+indexinfo[0].command[78].command "multivalue"
+indexinfo[0].command[79].indexname "mystructfield.bytearr"
indexinfo[0].command[79].command "index"
-indexinfo[0].command[80].indexname "mystructfield.mymap"
-indexinfo[0].command[80].command "index"
-indexinfo[0].command[81].indexname "mystructfield.mymap"
-indexinfo[0].command[81].command "multivalue"
-indexinfo[0].command[82].indexname "mystructfield.title"
+indexinfo[0].command[80].indexname "mystructfield.bytearr"
+indexinfo[0].command[80].command "multivalue"
+indexinfo[0].command[81].indexname "mystructfield.mymap.key"
+indexinfo[0].command[81].command "index"
+indexinfo[0].command[82].indexname "mystructfield.mymap.value"
indexinfo[0].command[82].command "index"
-indexinfo[0].command[83].indexname "mystructfield.structfield"
+indexinfo[0].command[83].indexname "mystructfield.mymap"
indexinfo[0].command[83].command "index"
-indexinfo[0].command[84].indexname "mystructfield"
-indexinfo[0].command[84].command "index"
-indexinfo[0].command[85].indexname "mystructmap.key"
+indexinfo[0].command[84].indexname "mystructfield.mymap"
+indexinfo[0].command[84].command "multivalue"
+indexinfo[0].command[85].indexname "mystructfield.title"
indexinfo[0].command[85].command "index"
-indexinfo[0].command[86].indexname "mystructmap.key"
-indexinfo[0].command[86].command "numerical"
-indexinfo[0].command[87].indexname "mystructmap.value.bytearr"
+indexinfo[0].command[86].indexname "mystructfield.structfield"
+indexinfo[0].command[86].command "index"
+indexinfo[0].command[87].indexname "mystructfield"
indexinfo[0].command[87].command "index"
-indexinfo[0].command[88].indexname "mystructmap.value.bytearr"
-indexinfo[0].command[88].command "multivalue"
-indexinfo[0].command[89].indexname "mystructmap.value.mymap.key"
-indexinfo[0].command[89].command "index"
-indexinfo[0].command[90].indexname "mystructmap.value.mymap.value"
+indexinfo[0].command[88].indexname "mystructmap.key"
+indexinfo[0].command[88].command "index"
+indexinfo[0].command[89].indexname "mystructmap.key"
+indexinfo[0].command[89].command "numerical"
+indexinfo[0].command[90].indexname "mystructmap.value.bytearr"
indexinfo[0].command[90].command "index"
-indexinfo[0].command[91].indexname "mystructmap.value.mymap"
-indexinfo[0].command[91].command "index"
-indexinfo[0].command[92].indexname "mystructmap.value.mymap"
-indexinfo[0].command[92].command "multivalue"
-indexinfo[0].command[93].indexname "mystructmap.value.title"
+indexinfo[0].command[91].indexname "mystructmap.value.bytearr"
+indexinfo[0].command[91].command "multivalue"
+indexinfo[0].command[92].indexname "mystructmap.value.mymap.key"
+indexinfo[0].command[92].command "index"
+indexinfo[0].command[93].indexname "mystructmap.value.mymap.value"
indexinfo[0].command[93].command "index"
-indexinfo[0].command[94].indexname "mystructmap.value.structfield"
+indexinfo[0].command[94].indexname "mystructmap.value.mymap"
indexinfo[0].command[94].command "index"
-indexinfo[0].command[95].indexname "mystructmap.value"
-indexinfo[0].command[95].command "index"
-indexinfo[0].command[96].indexname "mystructmap"
+indexinfo[0].command[95].indexname "mystructmap.value.mymap"
+indexinfo[0].command[95].command "multivalue"
+indexinfo[0].command[96].indexname "mystructmap.value.title"
indexinfo[0].command[96].command "index"
-indexinfo[0].command[97].indexname "mystructmap"
-indexinfo[0].command[97].command "multivalue"
-indexinfo[0].command[98].indexname "mystructarr.bytearr"
+indexinfo[0].command[97].indexname "mystructmap.value.structfield"
+indexinfo[0].command[97].command "index"
+indexinfo[0].command[98].indexname "mystructmap.value"
indexinfo[0].command[98].command "index"
-indexinfo[0].command[99].indexname "mystructarr.bytearr"
-indexinfo[0].command[99].command "multivalue"
-indexinfo[0].command[100].indexname "mystructarr.mymap.key"
-indexinfo[0].command[100].command "index"
-indexinfo[0].command[101].indexname "mystructarr.mymap.value"
+indexinfo[0].command[99].indexname "mystructmap"
+indexinfo[0].command[99].command "index"
+indexinfo[0].command[100].indexname "mystructmap"
+indexinfo[0].command[100].command "multivalue"
+indexinfo[0].command[101].indexname "mystructarr.bytearr"
indexinfo[0].command[101].command "index"
-indexinfo[0].command[102].indexname "mystructarr.mymap"
-indexinfo[0].command[102].command "index"
-indexinfo[0].command[103].indexname "mystructarr.mymap"
-indexinfo[0].command[103].command "multivalue"
-indexinfo[0].command[104].indexname "mystructarr.title"
+indexinfo[0].command[102].indexname "mystructarr.bytearr"
+indexinfo[0].command[102].command "multivalue"
+indexinfo[0].command[103].indexname "mystructarr.mymap.key"
+indexinfo[0].command[103].command "index"
+indexinfo[0].command[104].indexname "mystructarr.mymap.value"
indexinfo[0].command[104].command "index"
-indexinfo[0].command[105].indexname "mystructarr.structfield"
+indexinfo[0].command[105].indexname "mystructarr.mymap"
indexinfo[0].command[105].command "index"
-indexinfo[0].command[106].indexname "mystructarr"
-indexinfo[0].command[106].command "index"
-indexinfo[0].command[107].indexname "mystructarr"
-indexinfo[0].command[107].command "multivalue"
-indexinfo[0].command[108].indexname "Folders.key"
+indexinfo[0].command[106].indexname "mystructarr.mymap"
+indexinfo[0].command[106].command "multivalue"
+indexinfo[0].command[107].indexname "mystructarr.title"
+indexinfo[0].command[107].command "index"
+indexinfo[0].command[108].indexname "mystructarr.structfield"
indexinfo[0].command[108].command "index"
-indexinfo[0].command[109].indexname "Folders.key"
-indexinfo[0].command[109].command "numerical"
-indexinfo[0].command[110].indexname "Folders.value.Version"
-indexinfo[0].command[110].command "index"
-indexinfo[0].command[111].indexname "Folders.value.Version"
-indexinfo[0].command[111].command "numerical"
-indexinfo[0].command[112].indexname "Folders.value.Name"
-indexinfo[0].command[112].command "index"
-indexinfo[0].command[113].indexname "Folders.value.FlagsCounter.key"
+indexinfo[0].command[109].indexname "mystructarr"
+indexinfo[0].command[109].command "index"
+indexinfo[0].command[110].indexname "mystructarr"
+indexinfo[0].command[110].command "multivalue"
+indexinfo[0].command[111].indexname "Folders.key"
+indexinfo[0].command[111].command "index"
+indexinfo[0].command[112].indexname "Folders.key"
+indexinfo[0].command[112].command "numerical"
+indexinfo[0].command[113].indexname "Folders.value.Version"
indexinfo[0].command[113].command "index"
-indexinfo[0].command[114].indexname "Folders.value.FlagsCounter.value"
-indexinfo[0].command[114].command "index"
-indexinfo[0].command[115].indexname "Folders.value.FlagsCounter.value"
-indexinfo[0].command[115].command "numerical"
-indexinfo[0].command[116].indexname "Folders.value.FlagsCounter"
+indexinfo[0].command[114].indexname "Folders.value.Version"
+indexinfo[0].command[114].command "numerical"
+indexinfo[0].command[115].indexname "Folders.value.Name"
+indexinfo[0].command[115].command "index"
+indexinfo[0].command[116].indexname "Folders.value.FlagsCounter.key"
indexinfo[0].command[116].command "index"
-indexinfo[0].command[117].indexname "Folders.value.FlagsCounter"
-indexinfo[0].command[117].command "multivalue"
-indexinfo[0].command[118].indexname "Folders.value.anotherfolder.Version"
-indexinfo[0].command[118].command "index"
-indexinfo[0].command[119].indexname "Folders.value.anotherfolder.Version"
-indexinfo[0].command[119].command "numerical"
-indexinfo[0].command[120].indexname "Folders.value.anotherfolder.Name"
-indexinfo[0].command[120].command "index"
-indexinfo[0].command[121].indexname "Folders.value.anotherfolder.FlagsCounter.key"
+indexinfo[0].command[117].indexname "Folders.value.FlagsCounter.value"
+indexinfo[0].command[117].command "index"
+indexinfo[0].command[118].indexname "Folders.value.FlagsCounter.value"
+indexinfo[0].command[118].command "numerical"
+indexinfo[0].command[119].indexname "Folders.value.FlagsCounter"
+indexinfo[0].command[119].command "index"
+indexinfo[0].command[120].indexname "Folders.value.FlagsCounter"
+indexinfo[0].command[120].command "multivalue"
+indexinfo[0].command[121].indexname "Folders.value.anotherfolder.Version"
indexinfo[0].command[121].command "index"
-indexinfo[0].command[122].indexname "Folders.value.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[122].command "index"
-indexinfo[0].command[123].indexname "Folders.value.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[123].command "numerical"
-indexinfo[0].command[124].indexname "Folders.value.anotherfolder.FlagsCounter"
+indexinfo[0].command[122].indexname "Folders.value.anotherfolder.Version"
+indexinfo[0].command[122].command "numerical"
+indexinfo[0].command[123].indexname "Folders.value.anotherfolder.Name"
+indexinfo[0].command[123].command "index"
+indexinfo[0].command[124].indexname "Folders.value.anotherfolder.FlagsCounter.key"
indexinfo[0].command[124].command "index"
-indexinfo[0].command[125].indexname "Folders.value.anotherfolder.FlagsCounter"
-indexinfo[0].command[125].command "multivalue"
-indexinfo[0].command[126].indexname "Folders.value.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[126].command "index"
-indexinfo[0].command[127].indexname "Folders.value.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[127].command "numerical"
-indexinfo[0].command[128].indexname "Folders.value.anotherfolder.anotherfolder.Name"
-indexinfo[0].command[128].command "index"
-indexinfo[0].command[129].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[0].command[125].indexname "Folders.value.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[125].command "index"
+indexinfo[0].command[126].indexname "Folders.value.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[126].command "numerical"
+indexinfo[0].command[127].indexname "Folders.value.anotherfolder.FlagsCounter"
+indexinfo[0].command[127].command "index"
+indexinfo[0].command[128].indexname "Folders.value.anotherfolder.FlagsCounter"
+indexinfo[0].command[128].command "multivalue"
+indexinfo[0].command[129].indexname "Folders.value.anotherfolder.anotherfolder.Version"
indexinfo[0].command[129].command "index"
-indexinfo[0].command[130].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[130].command "index"
-indexinfo[0].command[131].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[131].command "numerical"
-indexinfo[0].command[132].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[130].indexname "Folders.value.anotherfolder.anotherfolder.Version"
+indexinfo[0].command[130].command "numerical"
+indexinfo[0].command[131].indexname "Folders.value.anotherfolder.anotherfolder.Name"
+indexinfo[0].command[131].command "index"
+indexinfo[0].command[132].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[0].command[132].command "index"
-indexinfo[0].command[133].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter"
-indexinfo[0].command[133].command "multivalue"
-indexinfo[0].command[134].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[134].command "index"
-indexinfo[0].command[135].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[135].command "numerical"
-indexinfo[0].command[136].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.Name"
-indexinfo[0].command[136].command "index"
-indexinfo[0].command[137].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[0].command[133].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[133].command "index"
+indexinfo[0].command[134].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[134].command "numerical"
+indexinfo[0].command[135].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[135].command "index"
+indexinfo[0].command[136].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[136].command "multivalue"
+indexinfo[0].command[137].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[0].command[137].command "index"
-indexinfo[0].command[138].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[138].command "index"
-indexinfo[0].command[139].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[139].command "numerical"
-indexinfo[0].command[140].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[138].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[0].command[138].command "numerical"
+indexinfo[0].command[139].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[0].command[139].command "index"
+indexinfo[0].command[140].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[0].command[140].command "index"
-indexinfo[0].command[141].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
-indexinfo[0].command[141].command "multivalue"
-indexinfo[0].command[142].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[142].command "index"
-indexinfo[0].command[143].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[143].command "numerical"
-indexinfo[0].command[144].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
-indexinfo[0].command[144].command "index"
-indexinfo[0].command[145].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[0].command[141].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[141].command "index"
+indexinfo[0].command[142].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[142].command "numerical"
+indexinfo[0].command[143].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[143].command "index"
+indexinfo[0].command[144].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[144].command "multivalue"
+indexinfo[0].command[145].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[0].command[145].command "index"
-indexinfo[0].command[146].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[146].command "index"
-indexinfo[0].command[147].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[147].command "numerical"
-indexinfo[0].command[148].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[146].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[0].command[146].command "numerical"
+indexinfo[0].command[147].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[0].command[147].command "index"
+indexinfo[0].command[148].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[0].command[148].command "index"
-indexinfo[0].command[149].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
-indexinfo[0].command[149].command "multivalue"
-indexinfo[0].command[150].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[150].command "index"
-indexinfo[0].command[151].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[151].command "numerical"
-indexinfo[0].command[152].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
-indexinfo[0].command[152].command "index"
-indexinfo[0].command[153].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[0].command[149].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[149].command "index"
+indexinfo[0].command[150].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[150].command "numerical"
+indexinfo[0].command[151].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[151].command "index"
+indexinfo[0].command[152].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[152].command "multivalue"
+indexinfo[0].command[153].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[0].command[153].command "index"
-indexinfo[0].command[154].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[154].command "index"
-indexinfo[0].command[155].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[155].command "numerical"
-indexinfo[0].command[156].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[154].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[0].command[154].command "numerical"
+indexinfo[0].command[155].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[0].command[155].command "index"
+indexinfo[0].command[156].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[0].command[156].command "index"
-indexinfo[0].command[157].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
-indexinfo[0].command[157].command "multivalue"
-indexinfo[0].command[158].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[158].command "index"
-indexinfo[0].command[159].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[159].command "numerical"
-indexinfo[0].command[160].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
-indexinfo[0].command[160].command "index"
-indexinfo[0].command[161].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[0].command[157].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[157].command "index"
+indexinfo[0].command[158].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[158].command "numerical"
+indexinfo[0].command[159].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[159].command "index"
+indexinfo[0].command[160].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[160].command "multivalue"
+indexinfo[0].command[161].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[0].command[161].command "index"
-indexinfo[0].command[162].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[162].command "index"
-indexinfo[0].command[163].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[163].command "numerical"
-indexinfo[0].command[164].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[162].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[0].command[162].command "numerical"
+indexinfo[0].command[163].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[0].command[163].command "index"
+indexinfo[0].command[164].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[0].command[164].command "index"
-indexinfo[0].command[165].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
-indexinfo[0].command[165].command "multivalue"
-indexinfo[0].command[166].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[166].command "index"
-indexinfo[0].command[167].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[167].command "numerical"
-indexinfo[0].command[168].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
-indexinfo[0].command[168].command "index"
-indexinfo[0].command[169].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[0].command[165].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[165].command "index"
+indexinfo[0].command[166].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[166].command "numerical"
+indexinfo[0].command[167].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[167].command "index"
+indexinfo[0].command[168].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[168].command "multivalue"
+indexinfo[0].command[169].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[0].command[169].command "index"
-indexinfo[0].command[170].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[170].command "index"
-indexinfo[0].command[171].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[171].command "numerical"
-indexinfo[0].command[172].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[170].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[0].command[170].command "numerical"
+indexinfo[0].command[171].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[0].command[171].command "index"
+indexinfo[0].command[172].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[0].command[172].command "index"
-indexinfo[0].command[173].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
-indexinfo[0].command[173].command "multivalue"
-indexinfo[0].command[174].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[174].command "index"
-indexinfo[0].command[175].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
-indexinfo[0].command[175].command "numerical"
-indexinfo[0].command[176].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
-indexinfo[0].command[176].command "index"
-indexinfo[0].command[177].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[0].command[173].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[173].command "index"
+indexinfo[0].command[174].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[174].command "numerical"
+indexinfo[0].command[175].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[175].command "index"
+indexinfo[0].command[176].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[176].command "multivalue"
+indexinfo[0].command[177].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[0].command[177].command "index"
-indexinfo[0].command[178].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[178].command "index"
-indexinfo[0].command[179].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
-indexinfo[0].command[179].command "numerical"
-indexinfo[0].command[180].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[178].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[0].command[178].command "numerical"
+indexinfo[0].command[179].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[0].command[179].command "index"
+indexinfo[0].command[180].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[0].command[180].command "index"
-indexinfo[0].command[181].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
-indexinfo[0].command[181].command "multivalue"
-indexinfo[0].command[182].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
-indexinfo[0].command[182].command "index"
-indexinfo[0].command[183].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[0].command[181].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[181].command "index"
+indexinfo[0].command[182].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[0].command[182].command "numerical"
+indexinfo[0].command[183].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[0].command[183].command "index"
-indexinfo[0].command[184].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
-indexinfo[0].command[184].command "index"
-indexinfo[0].command[185].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[0].command[184].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[0].command[184].command "multivalue"
+indexinfo[0].command[185].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[0].command[185].command "index"
-indexinfo[0].command[186].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[0].command[186].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[0].command[186].command "index"
-indexinfo[0].command[187].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[0].command[187].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[0].command[187].command "index"
-indexinfo[0].command[188].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[0].command[188].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[0].command[188].command "index"
-indexinfo[0].command[189].indexname "Folders.value.anotherfolder.anotherfolder"
+indexinfo[0].command[189].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[0].command[189].command "index"
-indexinfo[0].command[190].indexname "Folders.value.anotherfolder"
+indexinfo[0].command[190].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[0].command[190].command "index"
-indexinfo[0].command[191].indexname "Folders.value"
+indexinfo[0].command[191].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder"
indexinfo[0].command[191].command "index"
-indexinfo[0].command[192].indexname "Folders"
+indexinfo[0].command[192].indexname "Folders.value.anotherfolder.anotherfolder"
indexinfo[0].command[192].command "index"
-indexinfo[0].command[193].indexname "Folders"
-indexinfo[0].command[193].command "multivalue"
-indexinfo[0].command[194].indexname "juletre"
+indexinfo[0].command[193].indexname "Folders.value.anotherfolder"
+indexinfo[0].command[193].command "index"
+indexinfo[0].command[194].indexname "Folders.value"
indexinfo[0].command[194].command "index"
-indexinfo[0].command[195].indexname "juletre"
-indexinfo[0].command[195].command "attribute"
-indexinfo[0].command[196].indexname "juletre"
-indexinfo[0].command[196].command "fast-search"
+indexinfo[0].command[195].indexname "Folders"
+indexinfo[0].command[195].command "index"
+indexinfo[0].command[196].indexname "Folders"
+indexinfo[0].command[196].command "multivalue"
indexinfo[0].command[197].indexname "juletre"
-indexinfo[0].command[197].command "numerical"
-indexinfo[0].command[198].indexname "album0"
-indexinfo[0].command[198].command "index"
-indexinfo[0].command[199].indexname "album0"
-indexinfo[0].command[199].command "multivalue"
-indexinfo[0].command[200].indexname "album1"
-indexinfo[0].command[200].command "index"
-indexinfo[0].command[201].indexname "album1"
-indexinfo[0].command[201].command "multivalue"
-indexinfo[0].command[202].indexname "album1"
-indexinfo[0].command[202].command "attribute"
+indexinfo[0].command[197].command "index"
+indexinfo[0].command[198].indexname "juletre"
+indexinfo[0].command[198].command "attribute"
+indexinfo[0].command[199].indexname "juletre"
+indexinfo[0].command[199].command "fast-search"
+indexinfo[0].command[200].indexname "juletre"
+indexinfo[0].command[200].command "numerical"
+indexinfo[0].command[201].indexname "album0"
+indexinfo[0].command[201].command "index"
+indexinfo[0].command[202].indexname "album0"
+indexinfo[0].command[202].command "multivalue"
indexinfo[0].command[203].indexname "album1"
-indexinfo[0].command[203].command "word"
-indexinfo[0].command[204].indexname "complexarray"
-indexinfo[0].command[204].command "index"
-indexinfo[0].command[205].indexname "complexarray"
-indexinfo[0].command[205].command "multivalue"
-indexinfo[0].command[206].indexname "other"
-indexinfo[0].command[206].command "index"
-indexinfo[0].command[207].indexname "other"
-indexinfo[0].command[207].command "attribute"
-indexinfo[0].command[208].indexname "other"
-indexinfo[0].command[208].command "numerical"
-indexinfo[0].command[209].indexname "pst_sta_boldingoff_nomatch_tag_01"
+indexinfo[0].command[203].command "index"
+indexinfo[0].command[204].indexname "album1"
+indexinfo[0].command[204].command "multivalue"
+indexinfo[0].command[205].indexname "album1"
+indexinfo[0].command[205].command "attribute"
+indexinfo[0].command[206].indexname "album1"
+indexinfo[0].command[206].command "word"
+indexinfo[0].command[207].indexname "complexarray"
+indexinfo[0].command[207].command "index"
+indexinfo[0].command[208].indexname "complexarray"
+indexinfo[0].command[208].command "multivalue"
+indexinfo[0].command[209].indexname "other"
indexinfo[0].command[209].command "index"
-indexinfo[0].command[210].indexname "pst_sta_boldingoff_nomatch_tag_01"
-indexinfo[0].command[210].command "multivalue"
-indexinfo[0].command[211].indexname "rankfeatures"
-indexinfo[0].command[211].command "index"
-indexinfo[0].command[212].indexname "summaryfeatures"
-indexinfo[0].command[212].command "index" \ No newline at end of file
+indexinfo[0].command[210].indexname "other"
+indexinfo[0].command[210].command "attribute"
+indexinfo[0].command[211].indexname "other"
+indexinfo[0].command[211].command "numerical"
+indexinfo[0].command[212].indexname "pst_sta_boldingoff_nomatch_tag_01"
+indexinfo[0].command[212].command "index"
+indexinfo[0].command[213].indexname "pst_sta_boldingoff_nomatch_tag_01"
+indexinfo[0].command[213].command "multivalue"
+indexinfo[0].command[214].indexname "rankfeatures"
+indexinfo[0].command[214].command "index"
+indexinfo[0].command[215].indexname "summaryfeatures"
+indexinfo[0].command[215].command "index" \ No newline at end of file
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java
index cc87b3eef72..745c8c26182 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java
@@ -128,19 +128,15 @@ public class InheritanceTestCase extends AbstractExportingTestCase {
@Test
public void testInheritance() throws IOException, ParseException {
- try {
- String dir = "src/test/derived/inheritance/";
- SearchBuilder builder = new SearchBuilder();
- builder.importFile(dir + "grandparent.sd");
- builder.importFile(dir + "father.sd");
- builder.importFile(dir + "mother.sd");
- builder.importFile(dir + "child.sd");
- builder.build();
- } catch (IllegalArgumentException e) {
- assertEquals(
- "Inherited document 'datatype grandparent (code: -154107656)' already contains field 'overridden'. Can not override with 'overridden'.",
- e.getMessage());
- }
+ String dir = "src/test/derived/inheritance/";
+ SearchBuilder builder = new SearchBuilder();
+ builder.importFile(dir + "grandparent.sd");
+ builder.importFile(dir + "father.sd");
+ builder.importFile(dir + "mother.sd");
+ builder.importFile(dir + "child.sd");
+ builder.build();
+ derive("inheritance", builder, builder.getSearch("child"));
+ assertCorrectConfigFiles("inheritance");
}
@Test
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/PrefixExactAttributeTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/PrefixExactAttributeTestCase.java
index 29f3053f12c..9d974f075f1 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/PrefixExactAttributeTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/PrefixExactAttributeTestCase.java
@@ -12,8 +12,10 @@ import java.io.IOException;
* @author bratseth
*/
public class PrefixExactAttributeTestCase extends AbstractExportingTestCase {
+
@Test
public void testTypes() throws IOException, ParseException {
assertCorrectDeriving("prefixexactattribute");
}
+
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/Index.java b/container-search/src/main/java/com/yahoo/prelude/Index.java
index 4f596cefa95..27bcc77dee8 100644
--- a/container-search/src/main/java/com/yahoo/prelude/Index.java
+++ b/container-search/src/main/java/com/yahoo/prelude/Index.java
@@ -17,8 +17,8 @@ import java.util.Set;
* </ul>
* addCommand sets both types.
*
- * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
- * @author bratseth
+ * @author Steinar Knutsen
+ * @author bratseth
*/
public class Index {
@@ -282,9 +282,7 @@ public class Index {
this.isAttribute = isAttribute;
}
- public boolean hasPlainTokens() {
- return plainTokens;
- }
+ public boolean hasPlainTokens() { return plainTokens; }
public void setPlainTokens(boolean plainTokens) {
this.plainTokens = plainTokens;
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java b/container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java
index 7defe67eede..5ae07dd617e 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java
@@ -11,7 +11,7 @@ import java.util.Iterator;
* A term which contains a fixed length phrase, a collection of word terms,
* resulting from a single segmentation operation.
*
- * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
+ * @author Steinar Knutsen
*/
public class PhraseSegmentItem extends IndexedSegmentItem {
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java
index da73aab3396..0a76e5fb939 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java
@@ -115,6 +115,8 @@ public abstract class AbstractParser implements CustomParser {
}
}
+ // TODO: Deprecate the unwanted method signatures below
+
@Override
public final QueryTree parse(Parsable query) {
Item root = null;
@@ -123,7 +125,8 @@ public abstract class AbstractParser implements CustomParser {
query.getFilter(),
query.getLanguage(),
environment.getIndexFacts().newSession(query.getSources(), query.getRestrict()),
- query.getDefaultIndexName());
+ query.getDefaultIndexName(),
+ query);
}
if (root == null) {
root = new NullItem();
@@ -134,12 +137,20 @@ public abstract class AbstractParser implements CustomParser {
@Override
public final Item parse(String queryToParse, String filterToParse, Language parsingLanguage,
IndexFacts.Session indexFacts, String defaultIndexName) {
+ return parse(queryToParse, filterToParse, parsingLanguage, indexFacts, defaultIndexName, null);
+ }
+
+ private Item parse(String queryToParse, String filterToParse, Language parsingLanguage,
+ IndexFacts.Session indexFacts, String defaultIndexName, Parsable parsable) {
if (queryToParse == null) return null;
tokenize(queryToParse, defaultIndexName, indexFacts, parsingLanguage);
- if (parsingLanguage == null) {
- parsingLanguage = environment.getLinguistics().getDetector().detect(queryToParse, null).getLanguage();
+ if (parsingLanguage == null && parsable != null) {
+ String detectionText = generateLanguageDetectionTextFrom(tokens, indexFacts, defaultIndexName);
+ if (detectionText.isEmpty()) // heuristic detection text extraction is fallible
+ detectionText = queryToParse;
+ parsingLanguage = parsable.getOrDetectLanguage(detectionText);
}
setState(parsingLanguage, indexFacts);
@@ -159,6 +170,70 @@ public abstract class AbstractParser implements CustomParser {
return root;
}
+ /**
+ * Do a best-effort attempt at creating a single string for language detection from only the relevant
+ * subset of tokens.
+ * The relevant tokens are text tokens which follows names of indexes which are tokenized.
+ *
+ * This method does not modify the position of the given token stream.
+ */
+ private String generateLanguageDetectionTextFrom(TokenPosition tokens, IndexFacts.Session indexFacts, String defaultIndex) {
+ StringBuilder detectionText = new StringBuilder();
+ int initialPosition = tokens.getPosition();
+ while (tokens.hasNext()) { // look for occurrences of text and text:text
+ while (!tokens.currentIs(Token.Kind.WORD) && tokens.hasNext()) // skip nonwords
+ tokens.next();
+ if (!tokens.hasNext()) break;
+
+ String queryText;
+ Index index;
+
+ Token word1 = tokens.next();
+ if (is(Token.Kind.COLON, tokens.currentNoIgnore())) {
+ tokens.next(); // colon
+ Token word2 = tokens.next();
+ if ( is(Token.Kind.WORD, word2))
+ queryText = word2.image;
+ else
+ queryText = "";
+ index = indexFacts.getIndex(word1.image);
+ if (index.isNull()) { // interpret both as words
+ index = indexFacts.getIndex(defaultIndex);
+ queryText = word1.image + " " + queryText;
+ }
+ } else if (is(Token.Kind.COLON, tokens.currentNoIgnore()) && is(Token.Kind.QUOTE, tokens.currentNoIgnore(1))) {
+ tokens.next(); // colon
+ tokens.next(); // quote
+ StringBuilder quotedContent = new StringBuilder();
+ while (!tokens.currentIs(Token.Kind.QUOTE) && tokens.hasNext()) {
+ Token token = tokens.next();
+ if (is(Token.Kind.WORD, token))
+ quotedContent.append(token.image).append(" ");
+ }
+ tokens.next();
+ queryText = quotedContent.toString();
+ index = indexFacts.getIndex(word1.image);
+ if (index.isNull()) { // interpret both as words
+ index = indexFacts.getIndex(defaultIndex);
+ queryText = word1.image + " " + queryText;
+ }
+ } else {
+ index = indexFacts.getIndex(defaultIndex);
+ queryText = word1.image;
+ }
+
+ if (queryText != null && index.hasPlainTokens())
+ detectionText.append(queryText).append(" ");
+ }
+ tokens.setPosition(initialPosition);
+ return detectionText.toString();
+ }
+
+ private boolean is(Token.Kind kind, Token tokenOrNull) {
+ if (tokenOrNull == null) return false;
+ return kind.equals(tokenOrNull.kind);
+ }
+
protected abstract Item parseItems();
/**
@@ -264,11 +339,19 @@ public abstract class AbstractParser implements CustomParser {
// - Make the instance know the language, etc and do all dispatching internally
// -bratseth
// TODO: Use segmenting for forced phrase searches?
+ //
+ // Language detection currently depends on tokenization (see generateLanguageDetectionTextFrom), but
+ // - the API's was originally not constructed for that, so a careful nd somewhat unsatisfactory dance
+ // most be carried out to make it work
+ // - it should really depend on parsing
+ // This can be solved by making the segment method language independent by
+ // always producing a query item containing the token text and resolve it to a WordItem or
+ // SegmentItem after parsing and language detection.
protected Item segment(Token token) {
String normalizedToken = normalize(token.toString());
if (token.isSpecial()) {
- final WordItem w = new WordItem(token.toString(), true, token.substring);
+ WordItem w = new WordItem(token.toString(), true, token.substring);
w.setWords(false);
w.setFromSpecialToken(true);
return w;
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/CustomParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/CustomParser.java
index a658d35e6de..376d68add0a 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/CustomParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/CustomParser.java
@@ -11,7 +11,7 @@ import java.util.Objects;
import java.util.Set;
/**
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ * @author Simon Thoresen
* @since 5.1.4
*/
public interface CustomParser extends Parser {
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java
index fd1617b5350..99ac14bcc55 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java
@@ -698,8 +698,7 @@ abstract class StructuredParser extends AbstractParser {
if (tokens.currentIsNoIgnore(LBRACE)) {
braceLevelURL++;
}
- if (tokens.hasNext() && !tokens.currentIsNoIgnore(SPACE)
- && braceLevelURL >= 0) {
+ if (tokens.hasNext() && !tokens.currentIsNoIgnore(SPACE) && braceLevelURL >= 0) {
tokens.skip();
skipped = true;
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/TokenPosition.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/TokenPosition.java
index cfc22f038c0..e1aa83c7d37 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/TokenPosition.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/TokenPosition.java
@@ -6,10 +6,10 @@ import java.util.List;
/**
- * An iterator-like view of a list, but typed, random-accessible
+ * An iterator-like view of a list of tokens, but typed, random-accessible
* and with more convenience methods
*
- * @author bratseth
+ * @author bratseth
*/
final class TokenPosition {
@@ -214,5 +214,10 @@ final class TokenPosition {
skip();
return true;
}
+
+ @Override
+ public String toString() {
+ return "token " + current();
+ }
}
diff --git a/container-search/src/main/java/com/yahoo/search/query/Model.java b/container-search/src/main/java/com/yahoo/search/query/Model.java
index ca6f7efaa5e..5b2694b6dfd 100644
--- a/container-search/src/main/java/com/yahoo/search/query/Model.java
+++ b/container-search/src/main/java/com/yahoo/search/query/Model.java
@@ -115,6 +115,10 @@ public class Model implements Cloneable {
}
}
+ public Language getParsingLanguage() {
+ return getParsingLanguage(queryString);
+ }
+
/**
* Gets the language to use for parsing. If this is explicitly set in the model, that language is returned.
* Otherwise, if a query tree is already produced and any node in it specifies a language the first such
@@ -127,7 +131,7 @@ public class Model implements Cloneable {
// TODO: We can support multiple languages per query by changing searchers which call this
// to look up the query to use at each point from item.getLanguage
// with this as fallback for query branches where no parent item specifies language
- public Language getParsingLanguage() {
+ public Language getParsingLanguage(String languageDetectionText) {
Language language = getLanguage();
if (language != null) return language;
@@ -140,7 +144,7 @@ public class Model implements Cloneable {
Linguistics linguistics = execution.context().getLinguistics();
if (linguistics != null)
- language = linguistics.getDetector().detect(queryString, null).getLanguage();
+ language = linguistics.getDetector().detect(languageDetectionText, null).getLanguage(); // TODO: Set language if detected
if (language != Language.UNKNOWN) return language;
return Language.ENGLISH;
diff --git a/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java b/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java
index f0126b3e866..80194bcccf4 100644
--- a/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java
+++ b/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java
@@ -25,8 +25,7 @@ import java.util.Set;
* <p>In case you are parsing the content of a {@link Model}, you can use the {@link #fromQueryModel(Model)} factory for
* convenience.</p>
*
- * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
- * @since 5.1.4
+ * @author Simon Thoresen
*/
public final class Parsable {
@@ -35,9 +34,12 @@ public final class Parsable {
private String query;
private String filter;
private String defaultIndexName;
- private Language language;
+ private Language language; // TODO: Initialize to UNKNOWN
private Optional<Language> explicitLanguage = Optional.empty();
+ /** If this is set it will be used to determine the language, if not set explicitly */
+ private Optional<Model> model = Optional.empty();
+
public String getQuery() {
return query;
}
@@ -69,14 +71,26 @@ public final class Parsable {
* Returns the language to use when parsing,
* if not decided by the item under parsing. This is never null or UNKNOWN
*/
- public Language getLanguage() { return language; }
+ public Language getLanguage() {
+ return language;
+ }
+
+ /**
+ * Returns the language to use when parsing, with a text to use for detection if necessary.
+ * if not decided by the item under parsing. This is never null or UNKNOWN
+ */
+ public Language getOrDetectLanguage(String languageDetectionText) {
+ if (language != null && language != Language.UNKNOWN) return language;
+ if (model.isPresent()) return model.get().getParsingLanguage(languageDetectionText);
+ return Language.UNKNOWN; // against the promise in the JavaDoc, but it is not locally ensured
+ }
public Parsable setLanguage(Language language) {
Objects.requireNonNull(language, "Language cannot be null");
this.language = language;
return this;
}
-
+
/** Returns the language explicitly set to be used when parsing, or empty if none is set. */
public Optional<Language> getExplicitLanguage() { return explicitLanguage; }
@@ -86,6 +100,12 @@ public final class Parsable {
return this;
}
+ public Parsable setModel(Model model) {
+ Objects.requireNonNull(model, "Model cannot be null");
+ this.model = Optional.of(model);
+ return this;
+ }
+
public Set<String> getSources() {
return sourceList;
}
@@ -116,9 +136,9 @@ public final class Parsable {
public static Parsable fromQueryModel(Model model) {
return new Parsable()
+ .setModel(model)
.setQuery(model.getQueryString())
.setFilter(model.getFilter())
- .setLanguage(model.getParsingLanguage())
.setExplicitLanguage(Optional.ofNullable(model.getLanguage()))
.setDefaultIndexName(model.getDefaultIndex())
.addSources(model.getSources())
diff --git a/container-search/src/test/java/com/yahoo/prelude/query/parser/test/ParseTestCase.java b/container-search/src/test/java/com/yahoo/prelude/query/parser/test/ParseTestCase.java
index 1257f2e2746..819684ad9a5 100644
--- a/container-search/src/test/java/com/yahoo/prelude/query/parser/test/ParseTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/query/parser/test/ParseTestCase.java
@@ -1916,7 +1916,7 @@ public class ParseTestCase {
@Test
public void testChineseSpecialTokens() {
tester.assertParsed("AND \"cat tcp/ip zu\" \"foo dotnet bar dotnet dotnet c# c++ bar dotnet dotnet wiz\"",
- "cattcp/ipzu foo.netbar.net.netC#c++bar.net.netwiz","",Query.Type.ALL,Language.CHINESE_SIMPLIFIED);
+ "cattcp/ipzu foo.netbar.net.netC#c++bar.net.netwiz","", Query.Type.ALL, Language.CHINESE_SIMPLIFIED);
}
/**
diff --git a/container-search/src/test/java/com/yahoo/prelude/semantics/test/RuleBaseAbstractTestCase.java b/container-search/src/test/java/com/yahoo/prelude/semantics/test/RuleBaseAbstractTestCase.java
index 87835c08127..7cc440e815e 100644
--- a/container-search/src/test/java/com/yahoo/prelude/semantics/test/RuleBaseAbstractTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/semantics/test/RuleBaseAbstractTestCase.java
@@ -67,6 +67,7 @@ public abstract class RuleBaseAbstractTestCase extends junit.framework.TestCase
}
protected Query assertSemantics(String result, Query query) {
+ System.out.println(query.getModel().getQueryTree());
createExecution(searcher).search(query);
assertEquals(result, query.getModel().getQueryTree().getRoot().toString());
return query;
diff --git a/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java b/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
index ec6d4f11369..eaaf87bc035 100644
--- a/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
@@ -3,7 +3,14 @@ package com.yahoo.search.test;
import com.yahoo.component.chain.Chain;
import com.yahoo.language.Language;
+import com.yahoo.language.Linguistics;
+import com.yahoo.language.detect.Detection;
+import com.yahoo.language.detect.Detector;
+import com.yahoo.language.detect.Hint;
+import com.yahoo.language.simple.SimpleDetector;
import com.yahoo.language.simple.SimpleLinguistics;
+import com.yahoo.prelude.Index;
+import com.yahoo.prelude.IndexFacts;
import com.yahoo.prelude.query.AndItem;
import com.yahoo.prelude.query.Highlight;
import com.yahoo.prelude.query.IndexedItem;
@@ -637,23 +644,57 @@ public class QueryTestCase {
}
@Test
- public void testMultipleLanguages() {
- {
- Query q = new Query(httpEncode("/?query=headline:\"彭 博士 觀 風向\" content:\"彭 博士 觀 風向\" description:\"彭 博士 觀 風向\""));
- q.getModel().setExecution(new Execution(Execution.Context.createContextStub(null, null, new SimpleLinguistics())));
- assertEquals(Language.CHINESE_TRADITIONAL, q.getModel().getParsingLanguage());
+ public void testHeuristicLanguageDetectionTextExtraction() {
+ assertDetectionText("b ", "a:b", "text:a", "text:default");
+ assertDetectionText("b ", "b", "text:default");
+ assertDetectionText("b ", "b","text:b", "text:default");
+ assertDetectionText("a b ", "a:b","text:b", "text:default");
+ assertDetectionText("foo bar fuz ", "foo a:bar --() fuz","text:a", "text:default");
+ assertDetectionText(" 彭 博士 觀 風向 彭 博士 觀 風向 彭 博士 觀 風向 ","headline:\"彭 博士 觀 風向\" content:\"彭 博士 觀 風向\" description:\"彭 博士 觀 風向\" sddocname:contentindexing!0 embargo:<1484665288753!0 expires:>1484665288753!0",
+ "text:headline", "text:content", "text:description", "text:default", "nontext:tags", "nontext:sddocname", "nontext:embargo", "nontext:expires");
+ }
+
+ private void assertDetectionText(String expectedDetectionText, String queryString, String ... indexSpecs) {
+ Query q = new Query(httpEncode("/?query=" + queryString));
+ IndexFacts indexFacts = new IndexFacts();
+ for (String indexSpec : indexSpecs) {
+ String[] specParts = indexSpec.split(":");
+ Index tokenIndex = new Index(specParts[1]);
+ if (specParts[0].equals("text"))
+ tokenIndex.setPlainTokens(true);
+ indexFacts.addIndex("testSearchDefinition", tokenIndex);
}
+ MockLinguistics mockLinguistics = new MockLinguistics();
+ q.getModel().setExecution(new Execution(Execution.Context.createContextStub(null, indexFacts, mockLinguistics)));
+ q.getModel().getQueryTree(); // cause parsing
+ assertEquals(expectedDetectionText, mockLinguistics.detector.lastDetectionText);
+ }
+
+ /** A linguistics instance which records the last language detection text passed to it */
+ private static class MockLinguistics extends SimpleLinguistics {
- {
- Query q = new Query(httpEncode("/?query=headline:\"彭 博士 觀 風向\" content:\"彭 博士 觀 風向\" description:\"彭 博士 觀 風向\" tags:ymedia:type=story tags:ymedia:type=blogpost tags:ymedia:type=slideshow tags:ymedia:type=cavideo tags:ymedia:type=photo -tags:ymedia:hosted=no sddocname:contentindexing!0 embargo:<1484665288753!0 expires:>1484665288753!0"));
- q.getModel().setExecution(new Execution(Execution.Context.createContextStub(null, null, new SimpleLinguistics())));
- assertEquals(Language.CHINESE_TRADITIONAL, q.getModel().getParsingLanguage());
+ final MockDetector detector = new MockDetector();
+
+ @Override
+ public Detector getDetector() { return detector; }
+
+ }
+
+ private static class MockDetector extends SimpleDetector {
+
+ String lastDetectionText = null;
+
+ @Override
+ public Detection detect(String input, Hint hint) {
+ lastDetectionText = input;
+ return super.detect(input, hint);
}
+
}
protected boolean contains(String lineSubstring,String[] lines) {
for (String line : lines)
- if (line.indexOf(lineSubstring)>=0) return true;
+ if (line.contains(lineSubstring)) return true;
return false;
}
diff --git a/linguistics/src/main/java/com/yahoo/language/simple/SimpleDetector.java b/linguistics/src/main/java/com/yahoo/language/simple/SimpleDetector.java
index 24e1684d065..de792c18ee1 100644
--- a/linguistics/src/main/java/com/yahoo/language/simple/SimpleDetector.java
+++ b/linguistics/src/main/java/com/yahoo/language/simple/SimpleDetector.java
@@ -46,12 +46,6 @@ public class SimpleDetector implements Detector {
}
public static Language guessLanguage(String input) {
- Language language = guessLanguage2(input);
- System.out.println("Detecting language of '" + input + "' as " + language);
- return language;
- }
-
- public static Language guessLanguage2(String input) {
if (input == null || input.length() == 0) {
return Language.UNKNOWN;
}