summaryrefslogtreecommitdiffstats
path: root/config-model/src/test/derived/music
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
commit72231250ed81e10d66bfe70701e64fa5fe50f712 (patch)
tree2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /config-model/src/test/derived/music
Publish
Diffstat (limited to 'config-model/src/test/derived/music')
-rw-r--r--config-model/src/test/derived/music/attributes.cfg209
-rw-r--r--config-model/src/test/derived/music/defs/attributes.def7
-rw-r--r--config-model/src/test/derived/music/defs/documentmanager.def12
-rw-r--r--config-model/src/test/derived/music/defs/extra.def4
-rw-r--r--config-model/src/test/derived/music/defs/ilscripts.def5
-rw-r--r--config-model/src/test/derived/music/defs/rank-profiles.def344
-rw-r--r--config-model/src/test/derived/music/defs/summarymap.def15
-rw-r--r--config-model/src/test/derived/music/ilscripts.cfg76
-rw-r--r--config-model/src/test/derived/music/index-info.cfg215
-rwxr-xr-xconfig-model/src/test/derived/music/juniperrc.cfg21
-rw-r--r--config-model/src/test/derived/music/music.sd176
-rw-r--r--config-model/src/test/derived/music/rank-profiles.cfg34
-rw-r--r--config-model/src/test/derived/music/summary.cfg103
-rw-r--r--config-model/src/test/derived/music/summarymap.cfg46
14 files changed, 1267 insertions, 0 deletions
diff --git a/config-model/src/test/derived/music/attributes.cfg b/config-model/src/test/derived/music/attributes.cfg
new file mode 100644
index 00000000000..5ded3dc494d
--- /dev/null
+++ b/config-model/src/test/derived/music/attributes.cfg
@@ -0,0 +1,209 @@
+attribute[0].name "sales"
+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 "pto"
+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 "mid"
+attribute[2].datatype INT32
+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 ""
+attribute[3].name "weight"
+attribute[3].datatype FLOAT
+attribute[3].collectiontype SINGLE
+attribute[3].removeifzero false
+attribute[3].createifnonexistent false
+attribute[3].fastsearch false
+attribute[3].huge false
+attribute[3].sortascending true
+attribute[3].sortfunction UCA
+attribute[3].sortstrength PRIMARY
+attribute[3].sortlocale ""
+attribute[3].enablebitvectors false
+attribute[3].enableonlybitvector false
+attribute[3].fastaccess false
+attribute[3].arity 8
+attribute[3].lowerbound -9223372036854775808
+attribute[3].upperbound 9223372036854775807
+attribute[3].densepostinglistthreshold 0.4
+attribute[3].tensortype ""
+attribute[4].name "bgnpfrom"
+attribute[4].datatype FLOAT
+attribute[4].collectiontype SINGLE
+attribute[4].removeifzero false
+attribute[4].createifnonexistent false
+attribute[4].fastsearch false
+attribute[4].huge false
+attribute[4].sortascending true
+attribute[4].sortfunction UCA
+attribute[4].sortstrength PRIMARY
+attribute[4].sortlocale ""
+attribute[4].enablebitvectors false
+attribute[4].enableonlybitvector false
+attribute[4].fastaccess false
+attribute[4].arity 8
+attribute[4].lowerbound -9223372036854775808
+attribute[4].upperbound 9223372036854775807
+attribute[4].densepostinglistthreshold 0.4
+attribute[4].tensortype ""
+attribute[5].name "newestedition"
+attribute[5].datatype INT32
+attribute[5].collectiontype SINGLE
+attribute[5].removeifzero false
+attribute[5].createifnonexistent false
+attribute[5].fastsearch false
+attribute[5].huge false
+attribute[5].sortascending true
+attribute[5].sortfunction UCA
+attribute[5].sortstrength PRIMARY
+attribute[5].sortlocale ""
+attribute[5].enablebitvectors false
+attribute[5].enableonlybitvector false
+attribute[5].fastaccess false
+attribute[5].arity 8
+attribute[5].lowerbound -9223372036854775808
+attribute[5].upperbound 9223372036854775807
+attribute[5].densepostinglistthreshold 0.4
+attribute[5].tensortype ""
+attribute[6].name "year"
+attribute[6].datatype INT32
+attribute[6].collectiontype SINGLE
+attribute[6].removeifzero false
+attribute[6].createifnonexistent false
+attribute[6].fastsearch false
+attribute[6].huge false
+attribute[6].sortascending true
+attribute[6].sortfunction UCA
+attribute[6].sortstrength PRIMARY
+attribute[6].sortlocale ""
+attribute[6].enablebitvectors false
+attribute[6].enableonlybitvector false
+attribute[6].fastaccess false
+attribute[6].arity 8
+attribute[6].lowerbound -9223372036854775808
+attribute[6].upperbound 9223372036854775807
+attribute[6].densepostinglistthreshold 0.4
+attribute[6].tensortype ""
+attribute[7].name "did"
+attribute[7].datatype INT32
+attribute[7].collectiontype SINGLE
+attribute[7].removeifzero false
+attribute[7].createifnonexistent false
+attribute[7].fastsearch false
+attribute[7].huge false
+attribute[7].sortascending true
+attribute[7].sortfunction UCA
+attribute[7].sortstrength PRIMARY
+attribute[7].sortlocale ""
+attribute[7].enablebitvectors false
+attribute[7].enableonlybitvector false
+attribute[7].fastaccess false
+attribute[7].arity 8
+attribute[7].lowerbound -9223372036854775808
+attribute[7].upperbound 9223372036854775807
+attribute[7].densepostinglistthreshold 0.4
+attribute[7].tensortype ""
+attribute[8].name "cbid"
+attribute[8].datatype INT32
+attribute[8].collectiontype SINGLE
+attribute[8].removeifzero false
+attribute[8].createifnonexistent false
+attribute[8].fastsearch false
+attribute[8].huge false
+attribute[8].sortascending true
+attribute[8].sortfunction UCA
+attribute[8].sortstrength PRIMARY
+attribute[8].sortlocale ""
+attribute[8].enablebitvectors false
+attribute[8].enableonlybitvector false
+attribute[8].fastaccess false
+attribute[8].arity 8
+attribute[8].lowerbound -9223372036854775808
+attribute[8].upperbound 9223372036854775807
+attribute[8].densepostinglistthreshold 0.4
+attribute[8].tensortype ""
+attribute[9].name "hiphopvalue_arr"
+attribute[9].datatype STRING
+attribute[9].collectiontype ARRAY
+attribute[9].removeifzero false
+attribute[9].createifnonexistent false
+attribute[9].fastsearch false
+attribute[9].huge false
+attribute[9].sortascending true
+attribute[9].sortfunction UCA
+attribute[9].sortstrength PRIMARY
+attribute[9].sortlocale ""
+attribute[9].enablebitvectors false
+attribute[9].enableonlybitvector false
+attribute[9].fastaccess false
+attribute[9].arity 8
+attribute[9].lowerbound -9223372036854775808
+attribute[9].upperbound 9223372036854775807
+attribute[9].densepostinglistthreshold 0.4
+attribute[9].tensortype ""
+attribute[10].name "metalvalue_arr"
+attribute[10].datatype STRING
+attribute[10].collectiontype ARRAY
+attribute[10].removeifzero false
+attribute[10].createifnonexistent false
+attribute[10].fastsearch false
+attribute[10].huge false
+attribute[10].sortascending true
+attribute[10].sortfunction UCA
+attribute[10].sortstrength PRIMARY
+attribute[10].sortlocale ""
+attribute[10].enablebitvectors false
+attribute[10].enableonlybitvector false
+attribute[10].fastaccess false
+attribute[10].arity 8
+attribute[10].lowerbound -9223372036854775808
+attribute[10].upperbound 9223372036854775807
+attribute[10].densepostinglistthreshold 0.4
+attribute[10].tensortype "" \ No newline at end of file
diff --git a/config-model/src/test/derived/music/defs/attributes.def b/config-model/src/test/derived/music/defs/attributes.def
new file mode 100644
index 00000000000..bb3a0df6299
--- /dev/null
+++ b/config-model/src/test/derived/music/defs/attributes.def
@@ -0,0 +1,7 @@
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+namespace=vespa.config.search
+attribute[].name string
+attribute[].datatype string
+attribute[].multivalue bool default=false
+attribute[].sortsigned bool default=true
+attribute[].disableprep bool default=false
diff --git a/config-model/src/test/derived/music/defs/documentmanager.def b/config-model/src/test/derived/music/defs/documentmanager.def
new file mode 100644
index 00000000000..a310e9f13c8
--- /dev/null
+++ b/config-model/src/test/derived/music/defs/documentmanager.def
@@ -0,0 +1,12 @@
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+namespace=document.config
+datatype[].id int
+datatype[].arraytype[].datatype int
+documenttype[].name string
+documenttype[].version int
+documenttype[].inherits[].name string
+documenttype[].inherits[].version int
+documenttype[].field[].name string
+documenttype[].field[].id int
+documenttype[].field[].header bool
+documenttype[].field[].datatype int
diff --git a/config-model/src/test/derived/music/defs/extra.def b/config-model/src/test/derived/music/defs/extra.def
new file mode 100644
index 00000000000..cc03f1b39d3
--- /dev/null
+++ b/config-model/src/test/derived/music/defs/extra.def
@@ -0,0 +1,4 @@
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+namespace=test
+file[].name string
+file[].content string
diff --git a/config-model/src/test/derived/music/defs/ilscripts.def b/config-model/src/test/derived/music/defs/ilscripts.def
new file mode 100644
index 00000000000..d999742fa3c
--- /dev/null
+++ b/config-model/src/test/derived/music/defs/ilscripts.def
@@ -0,0 +1,5 @@
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+namespace=vespa.configdefinition
+ilscript[].name string
+ilscript[].doctype string
+ilscript[].content[] string
diff --git a/config-model/src/test/derived/music/defs/rank-profiles.def b/config-model/src/test/derived/music/defs/rank-profiles.def
new file mode 100644
index 00000000000..0d7cf27ff06
--- /dev/null
+++ b/config-model/src/test/derived/music/defs/rank-profiles.def
@@ -0,0 +1,344 @@
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+namespace=vespa.config.search
+## name of this rank profile. maps to table index for internal use.
+rankprofile[].name string
+
+## the name of a generic property available to the feature execution framework and feature plugins
+rankprofile[].fef.property[].name string
+
+## the value of a generic property available to feature plugins
+rankprofile[].fef.property[].value string
+
+## the catalog name overrides apply to
+rankprofile[].catalog[].name string
+
+## Boost value for AND queries in this catalog.
+rankprofile[].catalog[].andboost int default=0
+
+## Boost value for OR queries in this catalog.
+rankprofile[].catalog[].orboost int default=0
+
+## Boost value for ANY queries in this catalog.
+rankprofile[].catalog[].anyboost int default=0
+
+## Boost value for NEAR queries in catalog.
+rankprofile[].catalog[].nearboost int default=0
+
+## Boost value for ORDEREDNEAR queries in this catalog.
+rankprofile[].catalog[].orderednearboost int default=0
+
+## Boost value for phrase queries in this catalog.
+rankprofile[].catalog[].phraseboost int default=0
+
+## Boost value for all queries in catalog.
+rankprofile[].catalog[].rankboost int default=0
+
+## If true, the context boost is the max value of
+## the individual contextboosts.
+## When false, the context boost when a term is in
+## several contexts is the sum of the individual contextboosts.
+rankprofile[].catalog[].bestcontextboostonly bool default=false
+
+
+## If true, then use extnumoccboost only when calculating rank values.
+## Also, do not normalize the extnumoccboost value with
+## global term frequency. Default value is false.
+rankprofile[].catalog[].extnumoccboostonly bool default=false
+
+## If yes, then use extnumoccboost only when calculating rank values.
+## Also, do not normalize the extnumoccboost value with
+## global term frequency. Default value is no.
+rankprofile[].catalog[].numoccandextnumoccboostonly bool default=false
+
+## If yes, then use bitvectors when possible.
+## Default value is false.
+rankprofile[].catalog[].preferbitvector bool default=false
+
+## Load extnumoccboost for this catalog from the named file.
+## extnumoccboost specifies boost values due to the number of
+## occurences of a term that are external to the document. If
+## "NULL" is given as file name, then all extnumoccboost values
+## will be set to 0.
+rankprofile[].catalog[].extnumoccboost.table string default="/home/vespa/conf/vespa/search/ranktables/constant-0000"
+
+## Load numoccboost for this catalog from the named file.
+## numoccboost specifies boost values due to the number of occurences in
+## a document. If "NULL" is given as file name, then all numoccboost
+## values will be set to 0.
+rankprofile[].catalog[].numoccboost.table string default="/home/vespa/conf/vespa/search/ranktables/constant-0000"
+
+## Load firstoccboost for catalog from the file named.
+## firstoccboost specifies boost values due to the position of the
+## first occurence in a document. If "NULL" is given as file name,
+## then all firstoccboost values will be set to 0.
+rankprofile[].catalog[].firstoccboost.table string default="/home/vespa/conf/vespa/search/ranktables/constant-0000"
+
+
+## Load firstoccproximityboost for this catalog from the file named.
+## firstoccproximity boost specifies boost values due to the correlation between
+## positions of the first occurence in a document for two and two words.
+##
+## If "NULL" is given as file name, then all
+## firstoccproximityboost values will be set to 0. If otherwise set,
+## should be the name of a file to load into the table. The file
+## should have 256 lines each containing a single integer.
+##
+## There are 256 elements in the table, handling forward distances from 1.
+## The corresponding firstoccrevproximityboost table is used
+## to handle closeness in reverse order.
+##
+## The last array index specifies the proximity table set. During
+## evaluation, the bigram proximity weight supplied by the query segmenter
+## specifies which proximity table set to use, with a fallback to set 0
+## when no information is available.
+rankprofile[].catalog[].firstoccproximityboost[].table string default="/home/vespa/conf/vespa/search/ranktables/constant-0000"
+
+## Load firstoccrevproximityboost table for this catalog from the named file.
+## Specifies boost values due to the correlation between positions
+## of the first occurence in a document for two and two words when
+## the second word in the query comes first in the document.
+## See also firstoccproximityboost above.
+rankprofile[].catalog[].firstoccrevproximityboost[].table string default="/home/vespa/conf/vespa/search/ranktables/constant-0000"
+
+## Load proximityboost for this catalog from the named file.
+## proximity boost specifies boost values due to the correlation between
+## positions of the occurences in a document for two and two words.
+## See also firstoccproximityboost above.
+rankprofile[].catalog[].proximityboost[].table string default="/home/vespa/conf/vespa/search/ranktables/constant-0000"
+
+## Load revproximityboost for this catalog from the named file.
+## revproximity boost specifies boost values due to the correlation between
+## positions of the occurences in a document for two and two words.
+## See also firstoccproximityboost above.
+rankprofile[].catalog[].revproximityboost[].table string default="/home/vespa/conf/vespa/search/ranktables/constant-0000"
+
+## Load divtable for this catalog from the named file.
+## Rank values for a query term are divided by the entry
+## in divtable indexed by log2 of term frequence.
+## The file should contain ?? lines each with a single integer.
+rankprofile[].catalog[].divtable string default=""
+
+## The name of a context in this catalog to specify boosts for.
+rankprofile[].catalog[].context[].name string
+
+## Boost occurrences in this context with the given value.
+## XXX -1 uses default (???) from somewhere(TM).
+rankprofile[].catalog[].context[].contextboost int default=0
+
+## Boost pair of occurrences in this context with
+## the given value when evaluating 2 words from same catalog in
+## parallell.
+## XXX -1 uses default (???) from somewhere(TM).
+rankprofile[].catalog[].context[].commoncontextboost.pair int default=0
+
+## Boost triple of occurrences in this context with
+## the given value when evaluating 3 words from same catalog in
+## parallell.
+## XXX -1 uses default (???) from somewhere(TM).
+rankprofile[].catalog[].context[].commoncontextboost.triple int default=0
+
+## Boost quad of occurrences in this context with
+## the given value when evaluating 4 words from same catalog in
+## parallell.
+## XXX -1 uses default (???) from somewhere(TM).
+rankprofile[].catalog[].context[].commoncontextboost.quad int default=0
+
+
+## The name of the attribute
+rankprofile[].attribute[].name string
+
+## Boost value for queries that hit in this attribute
+rankprofile[].attribute[].attributecontextboost int default=0
+
+## Load weightboost for this attribute from the named file.
+## weightboost specifies boost values due to the weight (weighted set)
+## or number of occurences (single, array) in an attribute.
+## If "NULL" is given as file name, then all weightboost values will be set to 0.
+rankprofile[].attribute[].weightboost.table string default="/home/vespa/conf/vespa/search/ranktables/constant-0000"
+
+
+## Load static rank values from the given staticrank docattr vector.
+## Must be specified in index.cf as a staticrankfile.
+rankprofile[].staticrankfile string default=""
+
+## Multiply static rank values with given value when calculating total
+## rank value.
+rankprofile[].staticcoefficient int default=1
+
+## If false then use only static ranking when sorting result hits.
+## Default is true.
+rankprofile[].dynamicranking bool default=true
+
+## If dynamic ranking is turned off, then ascending will sort the
+## result hits with lowest static rank values first, while
+## descending will sort with highest static rank values
+## first. Default is descending. This keyword has no effect if
+## dynamic ranking is on.
+rankprofile[].staticranksortorder string default="descending"
+
+## Load static rank mapping from the file named table. The static
+## rank mapping maps each 8-bit static rank value into a 32-bit static
+## rank value. This option may only be used with 8-bit static rank files.
+rankprofile[].staticrankmap string default=""
+
+## If set to "true", total rank will be reduced when dynamic rank is less than
+## 25% of static rank, to suppress irrelevant hits from popular sites.
+## If set to "false", total rank is not reduced.
+rankprofile[].clampstaticrank bool default=false
+
+## Load document datetime values used for freshness boost calculation from
+## this file. The values must be coded as minutes since
+## 1900-01-01T00:00Z. The value 0 has the special meaning
+## "no datetime value exists".
+rankprofile[].freshnessboost.file string default=""
+
+## Load freshnessboost lookup-table values from the file named
+## table instead of using built-in default values. The file must
+## contain 32 white-space separated non-negative integers.
+rankprofile[].freshnessboost.table string default="/home/vespa/conf/vespa/search/ranktables/constant-0000"
+
+## When calculating the freshness boost value multiply difference between
+## current datetime and document datetime with timeoffset before taking
+## the base-2 logarithm. Default value is 1. Max value is 31.
+rankprofile[].freshnessboost.timeoffset int default=1
+
+## If a document has datetime value 0, then use defaultboostvalue
+## as freshness boost value instead of doing table lookup. The default
+## default value is 0 (no boost).
+rankprofile[].freshnessboost.defaultboostvalue int default=0
+
+## Multiply freshness boost value with coefficient when calculating
+## total freshness boost value. If coefficient 0 is used, no freshness
+## boost value will be computed or added. Default value is 0.
+rankprofile[].freshnessboost.coefficient int default=0
+
+## boost table files for distance ranking, 1 dimension.
+## The tables have 465 elements each, where slots 0..15 represents
+## distances 0..15 while the remaining slots represents distance
+## (16 + (slot & 15)) << ((slot >> 4) - 1). Linear interpolation is
+## used for distances "between" table slots.
+##
+## If "NULL" is given as the file name then all 1D distance boost values
+## for that table will be set to 0.
+rankprofile[].distance1dboosttable[].table string
+
+## boost table files for distance ranking, 2 dimensions.
+## The tables have 977 elements each, where slots 0..15 represents
+## square of distance being 0..15 while the remaining slots represents
+## square of distance distance being
+## (16 + (slot & 15)) << ((slot >> 4) - 1). Linear interpolation is
+## used for distances "between" table slots.
+##
+## If "NULL" is given as the file name then all 2D distance boost values
+## for that table will be set to 0.
+rankprofile[].distance2dboosttable[].table string
+
+## The lowest possible size of a ranked result. This is the lower ramp
+## of the percentage specified in the binsize variable. The default is
+## specified in fsearchrc.
+rankprofile[].binlow int default=-1
+
+## The high limit of the ranked result bin. If the percentage of the
+## resultset specified in binsize is higher than this limit, this will be
+## the max size. The default is specified in fsearchrc.
+rankprofile[].binhigh int default=-1
+
+## The size of the ranked results as a percentage of the total result
+## set size. The percentage can be ramped off with the binlow and binhigh
+## variables. The default is specified in fsearchrc.
+rankprofile[].binsize double default=-1
+
+## Minimum value for maximum value of number of 'posocc' entries for a word.
+## The default is specified in fsearchrc.
+rankprofile[].posbinlow int default=-1
+
+## Maximum value for maximum value of number of 'posocc' entries for a word.
+## The default is specified in fsearchrc.
+rankprofile[].posbinhigh int default=-1
+
+## The maximum value for number of 'posocc' entries for a word, specified
+## as a percentage of the number of documents in the index. If more
+## entries are needed for evaluation, posocc entries are not used for that
+## word and evaluation will be performed without full proximity support.
+## The percentage can be ramped off with the posbinlow and posbinhigh
+## variables. The default is specified in fsearchrc.
+rankprofile[].posbinsize int default=-1
+
+## Boost value that is added to the relevance score of hits from superior
+## searches (searches where recall is sacrificed for better
+## precision). The rank cutoff feature will not be affected by this
+## feature (rank cutoff is applied before the superior boost).
+rankprofile[].superiorboost int default=0
+
+## Name of rank profile to be used when running superior searches
+## (searches where recall is sacrificed for better precision). If not
+## set, the current ranking profile will be used.
+##
+## If a profile for a superior search has this set then a superior^2
+## search exist (with more recall sacrificed than for superior searches)
+## and search behavior is slightly changed:
+##
+## If the search node has been asked to perform a superior search then an
+## internal double fallthrough with (superior, superior^2) search is
+## performed. If the search node has been asked to perform an internal
+## double fallthrough then a triple fallthrough with (normal, superior,
+## superior^2) is performed.
+rankprofile[].superiorname string default=""
+
+## After all other rank calculations, the rank value is tuned according
+## to the tunefactor and tunebias values. The rank value is modified
+## as follows: new_rank = old_rank * tunefactor + tunebias.
+rankprofile[].tunefactor double default=1.0
+
+## After all other rank calculations, the rank value is tuned according
+## to the tunefactor and tunebias values. The rank value is modified
+## as follows: new_rank = old_rank * tunefactor + tunebias.
+rankprofile[].tunebias int default=0
+
+## A lower limit for the rankvalue of the results returned from the
+## search node. If rankcutoff.advanced is set to "true", determines
+## the constant value used in the internal advanced rank cutoff
+## calculations. This roughly reflects the expected rank contribution
+## of one good term.
+## The rankcutoff.val value and the rankcutoff.advanced parameter
+## may be used if you only want hits with a minimum relevancy to show
+## up in the resultset.
+## A value below zero means no rankcutoff is done.
+rankprofile[].rankcutoff.val int default=-1
+
+## When rankcutoff.val is in use, this flag controls whether to use
+## an internal calculation is used for determining the rank cutoff
+## value. If "false", use rankcutoff.val as a direct lower limit.
+rankprofile[].rankcutoff.advanced bool default=false
+
+## If set to "ON", use of posocc files is enabled, except when
+## "forceemptyposoccs" is set in fsearchrc or posocc files doesn't exist.
+## If set to "OFF", use of posocc files is disabled.
+## If "NOTSET" the fsearchrc "proximity" parameter is used instead.
+rankprofile[].proximity.full.enable enum { OFF, ON, NOTSET } default=NOTSET
+
+## If set to "ON", use of firstoccproximity is enabled.
+## If set to "OFF", use of firstoccproximity is disabled.
+## When NOTSET use the firstoccproximity value in fsearchrc configuration.
+rankprofile[].proximity.firstocc.enable enum { OFF, ON, NOTSET } default=NOTSET
+
+## If set to "ON", use of proximity (cf. proximity and firstoccproximity)
+## will affect phrases in addition to single words.
+## If set to "OFF", proximity is never used for phrases.
+## When NOTSET use the phraseproximity value in fsearchrc configuration.
+rankprofile[].proximity.phrase.enable enum { OFF, ON, NOTSET } default=NOTSET
+
+## Selects behavior when proximity can be used for two words but not three
+## words while firstoccproximity can be used for three words.
+## If set to "ON", then use proximity for two words.
+## If set to "OFF", then use firstoccproximity for three words.
+## When NOTSET use the proximitypairbeforefirstoccproximitytriple value
+## in fsearchrc configuration.
+rankprofile[].proximity.pairbeforefirstocctriple.enable enum { OFF, ON, NOTSET } default=NOTSET
+
+## Selects behavior when proximity can be used for three words but not four
+## words while firstoccproximity can be used for four words.
+## If set to "ON", then use proximity for three words.
+## If set to "OFF", then use firstoccproximity for four words.
+## When NOTSET use the proximitytriplebeforefirstoccproximityquad value
+rankprofile[].proximity.triplebeforefirstoccquad.enable enum { OFF, ON, NOTSET } default=NOTSET
diff --git a/config-model/src/test/derived/music/defs/summarymap.def b/config-model/src/test/derived/music/defs/summarymap.def
new file mode 100644
index 00000000000..7bb5e7df849
--- /dev/null
+++ b/config-model/src/test/derived/music/defs/summarymap.def
@@ -0,0 +1,15 @@
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+namespace=vespa.config.search
+
+## The default output summary class id, -1 to use the stored summary class id
+defaultoutputclass int default=-1
+
+## The name of the summary field which is overridden with a dynamic value
+override[].field string
+
+## The overriding command, one of:
+## staticrank, dynamicteaser, dynamicteasermetric, label, ranklog, empty, copy
+override[].command string
+
+## Space-seaparated arguments, dedendent on the given command
+override[].arguments string default=""
diff --git a/config-model/src/test/derived/music/ilscripts.cfg b/config-model/src/test/derived/music/ilscripts.cfg
new file mode 100644
index 00000000000..ca2c35ffcba
--- /dev/null
+++ b/config-model/src/test/derived/music/ilscripts.cfg
@@ -0,0 +1,76 @@
+maxtermoccurrences 100
+ilscript[0].doctype "music"
+ilscript[0].docfield[0] "bgndata"
+ilscript[0].docfield[1] "sales"
+ilscript[0].docfield[2] "pto"
+ilscript[0].docfield[3] "keys"
+ilscript[0].docfield[4] "mid"
+ilscript[0].docfield[5] "ew"
+ilscript[0].docfield[6] "surl"
+ilscript[0].docfield[7] "userrate"
+ilscript[0].docfield[8] "pid"
+ilscript[0].docfield[9] "weight"
+ilscript[0].docfield[10] "url"
+ilscript[0].docfield[11] "isbn"
+ilscript[0].docfield[12] "fmt"
+ilscript[0].docfield[13] "albumid"
+ilscript[0].docfield[14] "disp_song"
+ilscript[0].docfield[15] "song"
+ilscript[0].docfield[16] "pfrom"
+ilscript[0].docfield[17] "bgnpfrom"
+ilscript[0].docfield[18] "categories"
+ilscript[0].docfield[19] "data"
+ilscript[0].docfield[20] "numreview"
+ilscript[0].docfield[21] "bgnsellers"
+ilscript[0].docfield[22] "image"
+ilscript[0].docfield[23] "artist"
+ilscript[0].docfield[24] "artistspid"
+ilscript[0].docfield[25] "title"
+ilscript[0].docfield[26] "newestedition"
+ilscript[0].docfield[27] "bgnpto"
+ilscript[0].docfield[28] "year"
+ilscript[0].docfield[29] "did"
+ilscript[0].docfield[30] "scorekey"
+ilscript[0].docfield[31] "cbid"
+ilscript[0].docfield[32] "metalvalue"
+ilscript[0].docfield[33] "hiphopvalue"
+ilscript[0].docfield[34] "powermetalvalue"
+ilscript[0].docfield[35] "progvalue"
+ilscript[0].content[0] "clear_state | guard { input hiphopvalue | split \";\" | attribute hiphopvalue_arr; }"
+ilscript[0].content[1] "clear_state | guard { input metalvalue | split \";\" | attribute metalvalue_arr; }"
+ilscript[0].content[2] "clear_state | guard { input bgndata | tokenize normalize stem:\"SHORTEST\" | summary bgndata; }"
+ilscript[0].content[3] "clear_state | guard { input sales | summary sales | attribute sales; }"
+ilscript[0].content[4] "clear_state | guard { input pto | summary pto | attribute pto; }"
+ilscript[0].content[5] "clear_state | guard { input keys | tokenize normalize stem:\"SHORTEST\" | index keys; }"
+ilscript[0].content[6] "clear_state | guard { input mid | summary mid | attribute mid; }"
+ilscript[0].content[7] "clear_state | guard { input ew | tokenize normalize stem:\"SHORTEST\" | summary ew | index ew; }"
+ilscript[0].content[8] "clear_state | guard { input surl | summary surl; }"
+ilscript[0].content[9] "clear_state | guard { input userrate | summary userrate; }"
+ilscript[0].content[10] "clear_state | guard { input pid | summary pid; }"
+ilscript[0].content[11] "clear_state | guard { input weight | summary weight | attribute weight; }"
+ilscript[0].content[12] "clear_state | guard { input url | summary url; }"
+ilscript[0].content[13] "clear_state | guard { input isbn | summary isbn; }"
+ilscript[0].content[14] "clear_state | guard { input fmt | tokenize normalize stem:\"SHORTEST\" | summary fmt | index fmt; }"
+ilscript[0].content[15] "clear_state | guard { input albumid | summary albumid; }"
+ilscript[0].content[16] "clear_state | guard { input disp_song | summary disp_song; }"
+ilscript[0].content[17] "clear_state | guard { input song | tokenize normalize stem:\"SHORTEST\" | summary song | index song; }"
+ilscript[0].content[18] "clear_state | guard { input pfrom | summary pfrom; }"
+ilscript[0].content[19] "clear_state | guard { input bgnpfrom | summary bgnpfrom | attribute bgnpfrom; }"
+ilscript[0].content[20] "clear_state | guard { input categories | tokenize normalize stem:\"SHORTEST\" | summary categories | index categories; }"
+ilscript[0].content[21] "clear_state | guard { input data | summary data; }"
+ilscript[0].content[22] "clear_state | guard { input numreview | summary numreview; }"
+ilscript[0].content[23] "clear_state | guard { input bgnsellers | summary bgnsellers; }"
+ilscript[0].content[24] "clear_state | guard { input image | summary image; }"
+ilscript[0].content[25] "clear_state | guard { input artist | tokenize normalize stem:\"SHORTEST\" | summary artist | index artist; }"
+ilscript[0].content[26] "clear_state | guard { input artistspid | summary artistspid; }"
+ilscript[0].content[27] "clear_state | guard { input title | tokenize normalize stem:\"SHORTEST\" | summary title | index title; }"
+ilscript[0].content[28] "clear_state | guard { input newestedition | summary newestedition | attribute newestedition; }"
+ilscript[0].content[29] "clear_state | guard { input bgnpto | tokenize normalize stem:\"SHORTEST\" | summary bgnpto; }"
+ilscript[0].content[30] "clear_state | guard { input year | summary year | attribute year; }"
+ilscript[0].content[31] "clear_state | guard { input did | summary did | attribute did; }"
+ilscript[0].content[32] "clear_state | guard { input scorekey | summary scorekey; }"
+ilscript[0].content[33] "clear_state | guard { input cbid | summary cbid | attribute cbid; }"
+ilscript[0].content[34] "clear_state | guard { input metalvalue | summary metalvalue; }"
+ilscript[0].content[35] "clear_state | guard { input hiphopvalue | summary hiphopvalue; }"
+ilscript[0].content[36] "clear_state | guard { input powermetalvalue | tokenize normalize stem:\"SHORTEST\" | index powermetalvalue | summary powermetalvalue; }"
+ilscript[0].content[37] "clear_state | guard { input progvalue | tokenize normalize stem:\"SHORTEST\" | index progvalue | summary progvalue; }" \ 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
new file mode 100644
index 00000000000..f7faae11ca8
--- /dev/null
+++ b/config-model/src/test/derived/music/index-info.cfg
@@ -0,0 +1,215 @@
+indexinfo[0].name "music"
+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 "bgndata"
+indexinfo[0].command[2].command "index"
+indexinfo[0].command[3].indexname "sales"
+indexinfo[0].command[3].command "index"
+indexinfo[0].command[4].indexname "sales"
+indexinfo[0].command[4].command "attribute"
+indexinfo[0].command[5].indexname "sales"
+indexinfo[0].command[5].command "numerical"
+indexinfo[0].command[6].indexname "pto"
+indexinfo[0].command[6].command "index"
+indexinfo[0].command[7].indexname "pto"
+indexinfo[0].command[7].command "attribute"
+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[11].indexname "keys"
+indexinfo[0].command[11].command "lowercase"
+indexinfo[0].command[12].indexname "default"
+indexinfo[0].command[12].command "lowercase"
+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[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[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[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[29].command "index"
+indexinfo[0].command[30].indexname "fmt"
+indexinfo[0].command[30].command "lowercase"
+indexinfo[0].command[31].indexname "fmt"
+indexinfo[0].command[31].command "stem:SHORTEST"
+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[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[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[53].command "index"
+indexinfo[0].command[54].indexname "artist"
+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[58].command "index"
+indexinfo[0].command[59].indexname "title"
+indexinfo[0].command[59].command "index"
+indexinfo[0].command[60].indexname "title"
+indexinfo[0].command[60].command "lowercase"
+indexinfo[0].command[61].indexname "title"
+indexinfo[0].command[61].command "stem:SHORTEST"
+indexinfo[0].command[62].indexname "title"
+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[70].command "index"
+indexinfo[0].command[71].indexname "did"
+indexinfo[0].command[71].command "attribute"
+indexinfo[0].command[72].indexname "did"
+indexinfo[0].command[72].command "numerical"
+indexinfo[0].command[73].indexname "scorekey"
+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[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[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[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
diff --git a/config-model/src/test/derived/music/juniperrc.cfg b/config-model/src/test/derived/music/juniperrc.cfg
new file mode 100755
index 00000000000..b5d7438e081
--- /dev/null
+++ b/config-model/src/test/derived/music/juniperrc.cfg
@@ -0,0 +1,21 @@
+length 256
+max_matches 3
+min_length 128
+prefix true
+surround_max 128
+winsize 200
+winsize_fallback_multiplier 10.0
+max_match_candidates 1000
+stem_min_length 5
+stem_max_extend 3
+override[0].fieldname "ew"
+override[0].length 65536
+override[0].max_matches 1
+override[0].min_length 8192
+override[0].prefix true
+override[0].surround_max 65536
+override[0].winsize 200
+override[0].winsize_fallback_multiplier 10.0
+override[0].max_match_candidates 1000
+override[0].stem_min_length 5
+override[0].stem_max_extend 3 \ No newline at end of file
diff --git a/config-model/src/test/derived/music/music.sd b/config-model/src/test/derived/music/music.sd
new file mode 100644
index 00000000000..b1a2bfc385d
--- /dev/null
+++ b/config-model/src/test/derived/music/music.sd
@@ -0,0 +1,176 @@
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+search music {
+
+ document music {
+
+ field bgndata type string {
+ indexing: summary
+ summary: dynamic
+ }
+
+ field sales type int {
+ indexing: summary | attribute
+ }
+
+ field pto type int {
+ indexing: summary | attribute
+ }
+
+ field keys type string {
+ indexing: index
+ }
+
+ field mid type int {
+ indexing: summary | attribute
+ }
+
+ field ew type string {
+ indexing: summary | index
+ bolding: on
+ }
+
+ field surl type string {
+ indexing: summary
+ }
+
+ field userrate type int {
+ indexing: summary
+ }
+
+ field pid type string {
+ indexing: summary
+ }
+
+ field weight type float {
+ indexing: summary | attribute
+ }
+
+ field url type string {
+ indexing: summary
+ }
+
+ field isbn type string {
+ indexing: summary
+ }
+
+ field fmt type string {
+ indexing: summary | index
+ }
+
+ field albumid type string {
+ indexing: summary
+ }
+
+ field disp_song type string {
+ indexing: summary
+ }
+
+ field song type string {
+ indexing: summary | index
+ summary: dynamic
+ }
+
+ field pfrom type int {
+ indexing: summary
+ }
+
+ field bgnpfrom type float {
+ indexing: summary | attribute
+ }
+
+ field categories type string {
+ indexing: summary | index
+ }
+
+ field data type string {
+ indexing: summary
+ }
+
+ field numreview type int {
+ indexing: summary
+ }
+
+ field bgnsellers type int {
+ indexing: summary
+ }
+
+ field image type string {
+ indexing: summary
+ }
+
+ field artist type string {
+ indexing: summary | index
+ }
+
+ field artistspid type string {
+ indexing: summary
+ }
+
+ field title type string {
+ indexing: summary | index
+ }
+
+ field newestedition type int {
+ indexing: summary | attribute
+ }
+
+ field bgnpto type string {
+ indexing: summary
+ summary: dynamic
+ bolding: on
+ }
+
+ field year type int {
+ indexing: summary | attribute
+ }
+
+ field did type int {
+ indexing: summary | attribute
+ }
+
+ field scorekey type int {
+ indexing: summary
+ }
+
+ field cbid type int {
+ indexing: summary | attribute
+ }
+
+ field metalvalue type string {
+ indexing: summary
+ }
+
+ field hiphopvalue type string {
+ indexing: summary
+ match {
+ token
+ }
+ }
+
+ field powermetalvalue type string {
+ indexing: index | summary
+ rank: filter
+ }
+
+ field progvalue type string {
+ indexing: index | summary
+ rank {
+ filter
+ }
+ }
+ }
+
+ field metalvalue_arr type array<string> {
+ indexing: input metalvalue | split ";" | attribute
+ }
+
+ field hiphopvalue_arr type array<string> {
+ indexing: input hiphopvalue | split ";" | attribute
+ }
+
+ fieldset default {
+ fields: keys, ew, artist, song, title
+ }
+
+}
+
diff --git a/config-model/src/test/derived/music/rank-profiles.cfg b/config-model/src/test/derived/music/rank-profiles.cfg
new file mode 100644
index 00000000000..e2452a670a0
--- /dev/null
+++ b/config-model/src/test/derived/music/rank-profiles.cfg
@@ -0,0 +1,34 @@
+rankprofile[0].name "default"
+rankprofile[0].fef.property[0].name "nativeFieldMatch.firstOccurrenceTable.powermetalvalue"
+rankprofile[0].fef.property[0].value "linear(0,0)"
+rankprofile[0].fef.property[1].name "nativeFieldMatch.occurrenceCountTable.powermetalvalue"
+rankprofile[0].fef.property[1].value "linear(0,0)"
+rankprofile[0].fef.property[2].name "nativeProximity.proximityTable.powermetalvalue"
+rankprofile[0].fef.property[2].value "linear(0,0)"
+rankprofile[0].fef.property[3].name "nativeProximity.reverseProximityTable.powermetalvalue"
+rankprofile[0].fef.property[3].value "linear(0,0)"
+rankprofile[0].fef.property[4].name "nativeFieldMatch.firstOccurrenceTable.progvalue"
+rankprofile[0].fef.property[4].value "linear(0,0)"
+rankprofile[0].fef.property[5].name "nativeFieldMatch.occurrenceCountTable.progvalue"
+rankprofile[0].fef.property[5].value "linear(0,0)"
+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[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)"
+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[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
diff --git a/config-model/src/test/derived/music/summary.cfg b/config-model/src/test/derived/music/summary.cfg
new file mode 100644
index 00000000000..0ddb8940482
--- /dev/null
+++ b/config-model/src/test/derived/music/summary.cfg
@@ -0,0 +1,103 @@
+defaultsummaryid 2086497905
+classes[0].id 2086497905
+classes[0].name "default"
+classes[0].fields[0].name "bgndata"
+classes[0].fields[0].type "longstring"
+classes[0].fields[1].name "sales"
+classes[0].fields[1].type "integer"
+classes[0].fields[2].name "pto"
+classes[0].fields[2].type "integer"
+classes[0].fields[3].name "mid"
+classes[0].fields[3].type "integer"
+classes[0].fields[4].name "ew"
+classes[0].fields[4].type "longstring"
+classes[0].fields[5].name "surl"
+classes[0].fields[5].type "longstring"
+classes[0].fields[6].name "userrate"
+classes[0].fields[6].type "integer"
+classes[0].fields[7].name "pid"
+classes[0].fields[7].type "longstring"
+classes[0].fields[8].name "weight"
+classes[0].fields[8].type "float"
+classes[0].fields[9].name "url"
+classes[0].fields[9].type "longstring"
+classes[0].fields[10].name "isbn"
+classes[0].fields[10].type "longstring"
+classes[0].fields[11].name "fmt"
+classes[0].fields[11].type "longstring"
+classes[0].fields[12].name "albumid"
+classes[0].fields[12].type "longstring"
+classes[0].fields[13].name "disp_song"
+classes[0].fields[13].type "longstring"
+classes[0].fields[14].name "song"
+classes[0].fields[14].type "longstring"
+classes[0].fields[15].name "pfrom"
+classes[0].fields[15].type "integer"
+classes[0].fields[16].name "bgnpfrom"
+classes[0].fields[16].type "float"
+classes[0].fields[17].name "categories"
+classes[0].fields[17].type "longstring"
+classes[0].fields[18].name "data"
+classes[0].fields[18].type "longstring"
+classes[0].fields[19].name "numreview"
+classes[0].fields[19].type "integer"
+classes[0].fields[20].name "bgnsellers"
+classes[0].fields[20].type "integer"
+classes[0].fields[21].name "image"
+classes[0].fields[21].type "longstring"
+classes[0].fields[22].name "artist"
+classes[0].fields[22].type "longstring"
+classes[0].fields[23].name "artistspid"
+classes[0].fields[23].type "longstring"
+classes[0].fields[24].name "title"
+classes[0].fields[24].type "longstring"
+classes[0].fields[25].name "newestedition"
+classes[0].fields[25].type "integer"
+classes[0].fields[26].name "bgnpto"
+classes[0].fields[26].type "longstring"
+classes[0].fields[27].name "year"
+classes[0].fields[27].type "integer"
+classes[0].fields[28].name "did"
+classes[0].fields[28].type "integer"
+classes[0].fields[29].name "scorekey"
+classes[0].fields[29].type "integer"
+classes[0].fields[30].name "cbid"
+classes[0].fields[30].type "integer"
+classes[0].fields[31].name "metalvalue"
+classes[0].fields[31].type "longstring"
+classes[0].fields[32].name "hiphopvalue"
+classes[0].fields[32].type "longstring"
+classes[0].fields[33].name "powermetalvalue"
+classes[0].fields[33].type "longstring"
+classes[0].fields[34].name "progvalue"
+classes[0].fields[34].type "longstring"
+classes[0].fields[35].name "rankfeatures"
+classes[0].fields[35].type "featuredata"
+classes[0].fields[36].name "summaryfeatures"
+classes[0].fields[36].type "featuredata"
+classes[0].fields[37].name "documentid"
+classes[0].fields[37].type "longstring"
+classes[1].id 2060710706
+classes[1].name "attributeprefetch"
+classes[1].fields[0].name "sales"
+classes[1].fields[0].type "integer"
+classes[1].fields[1].name "pto"
+classes[1].fields[1].type "integer"
+classes[1].fields[2].name "mid"
+classes[1].fields[2].type "integer"
+classes[1].fields[3].name "weight"
+classes[1].fields[3].type "float"
+classes[1].fields[4].name "bgnpfrom"
+classes[1].fields[4].type "float"
+classes[1].fields[5].name "newestedition"
+classes[1].fields[5].type "integer"
+classes[1].fields[6].name "year"
+classes[1].fields[6].type "integer"
+classes[1].fields[7].name "did"
+classes[1].fields[7].type "integer"
+classes[1].fields[8].name "cbid"
+classes[1].fields[8].type "integer"
+classes[1].fields[9].name "rankfeatures"
+classes[1].fields[9].type "featuredata"
+classes[1].fields[10].name "summaryfeatures"
+classes[1].fields[10].type "featuredata" \ No newline at end of file
diff --git a/config-model/src/test/derived/music/summarymap.cfg b/config-model/src/test/derived/music/summarymap.cfg
new file mode 100644
index 00000000000..f86dd8ec98f
--- /dev/null
+++ b/config-model/src/test/derived/music/summarymap.cfg
@@ -0,0 +1,46 @@
+defaultoutputclass -1
+override[0].field "bgndata"
+override[0].command "dynamicteaser"
+override[0].arguments "bgndata"
+override[1].field "sales"
+override[1].command "attribute"
+override[1].arguments "sales"
+override[2].field "pto"
+override[2].command "attribute"
+override[2].arguments "pto"
+override[3].field "mid"
+override[3].command "attribute"
+override[3].arguments "mid"
+override[4].field "ew"
+override[4].command "dynamicteaser"
+override[4].arguments "ew"
+override[5].field "weight"
+override[5].command "attribute"
+override[5].arguments "weight"
+override[6].field "song"
+override[6].command "dynamicteaser"
+override[6].arguments "song"
+override[7].field "bgnpfrom"
+override[7].command "attribute"
+override[7].arguments "bgnpfrom"
+override[8].field "newestedition"
+override[8].command "attribute"
+override[8].arguments "newestedition"
+override[9].field "bgnpto"
+override[9].command "dynamicteaser"
+override[9].arguments "bgnpto"
+override[10].field "year"
+override[10].command "attribute"
+override[10].arguments "year"
+override[11].field "did"
+override[11].command "attribute"
+override[11].arguments "did"
+override[12].field "cbid"
+override[12].command "attribute"
+override[12].arguments "cbid"
+override[13].field "rankfeatures"
+override[13].command "rankfeatures"
+override[13].arguments ""
+override[14].field "summaryfeatures"
+override[14].command "summaryfeatures"
+override[14].arguments "" \ No newline at end of file