summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java10
-rw-r--r--config-model/src/test/derived/advanced/index-info.cfg34
-rw-r--r--config-model/src/test/derived/array_of_struct_attribute/index-info.cfg6
-rw-r--r--config-model/src/test/derived/arrays/index-info.cfg10
-rw-r--r--config-model/src/test/derived/attributeprefetch/index-info.cfg36
-rw-r--r--config-model/src/test/derived/attributes/index-info.cfg42
-rw-r--r--config-model/src/test/derived/combinedattributeandindexsearch/index-info.cfg8
-rw-r--r--config-model/src/test/derived/emptydefault/index-info.cfg4
-rw-r--r--config-model/src/test/derived/exactmatch/index-info.cfg26
-rw-r--r--config-model/src/test/derived/fieldset/index-info.cfg4
-rw-r--r--config-model/src/test/derived/id/index-info.cfg16
-rw-r--r--config-model/src/test/derived/imported_position_field/index-info.cfg52
-rw-r--r--config-model/src/test/derived/imported_position_field_summary/index-info.cfg6
-rw-r--r--config-model/src/test/derived/imported_struct_fields/index-info.cfg26
-rw-r--r--config-model/src/test/derived/importedfields/index-info.cfg16
-rw-r--r--config-model/src/test/derived/indexinfo_fieldsets/index-info.cfg12
-rw-r--r--config-model/src/test/derived/indexinfo_lowercase/index-info.cfg18
-rw-r--r--config-model/src/test/derived/indexschema/index-info.cfg74
-rw-r--r--config-model/src/test/derived/indexswitches/index-info.cfg8
-rw-r--r--config-model/src/test/derived/inheritance/index-info.cfg10
-rw-r--r--config-model/src/test/derived/inheritstruct/index-info.cfg4
-rw-r--r--config-model/src/test/derived/map_attribute/index-info.cfg12
-rw-r--r--config-model/src/test/derived/map_of_struct_attribute/index-info.cfg20
-rw-r--r--config-model/src/test/derived/music/index-info.cfg76
-rw-r--r--config-model/src/test/derived/newrank/index-info.cfg64
-rw-r--r--config-model/src/test/derived/position_array/index-info.cfg8
-rw-r--r--config-model/src/test/derived/position_attribute/index-info.cfg8
-rw-r--r--config-model/src/test/derived/position_extra/index-info.cfg6
-rw-r--r--config-model/src/test/derived/predicate_attribute/index-info.cfg2
-rw-r--r--config-model/src/test/derived/prefixexactattribute/index-info.cfg10
-rw-r--r--config-model/src/test/derived/ranktypes/index-info.cfg10
-rw-r--r--config-model/src/test/derived/structanyorder/index-info.cfg200
-rw-r--r--config-model/src/test/derived/tensor/index-info.cfg49
-rw-r--r--config-model/src/test/derived/types/index-info.cfg252
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java4
-rw-r--r--container-search/abi-spec.json12
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/Index.java27
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/SearchDefinition.java8
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/HasIndexItem.java5
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/IndexedItem.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/ToolBox.java3
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchers/InputCheckingSearcher.java6
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchers/QueryValidator.java60
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchers/ValidateNearestNeighborSearcher.java4
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/searcher/test/ValidatePredicateSearcherTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/searchers/test/QueryValidatorTestCase.java45
48 files changed, 1262 insertions, 58 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java
index ecc90e3d948..3fea5cc16e9 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java
@@ -67,13 +67,13 @@ public class SDField extends Field implements TypedKey, FieldOperationContainer,
* to be specified in other rank profiles, while negative values
* turns the capability off.
*/
- private int literalBoost=-1;
+ private int literalBoost = -1;
/**
* The weight of this field. This is a percentage,
* so 100 is default to provide the identity transform.
*/
- private int weight=100;
+ private int weight = 100;
/**
* Indicates what kind of matching should be done on this field
@@ -87,7 +87,7 @@ public class SDField extends Field implements TypedKey, FieldOperationContainer,
* The stemming setting of this field, or null to use the default.
* Default is determined by the owning search definition.
*/
- private Stemming stemming=null;
+ private Stemming stemming = null;
/** How content of this field should be accent normalized etc. */
private NormalizeLevel normalizing = new NormalizeLevel();
@@ -179,6 +179,10 @@ public class SDField extends Field implements TypedKey, FieldOperationContainer,
if (type.dimensions().stream().anyMatch(d -> d.isIndexed() && d.size().isEmpty()))
throw new IllegalArgumentException("Illegal type in field " + name + " type " + type +
": Dense tensor dimensions must have a size");
+ addQueryCommand("type " + type);
+ }
+ else {
+ addQueryCommand("type " + dataType.getName());
}
if (populate || (dataType instanceof MapDataType)) {
populateWithStructFields(repo, name, dataType, recursion);
diff --git a/config-model/src/test/derived/advanced/index-info.cfg b/config-model/src/test/derived/advanced/index-info.cfg
index 162a677be67..c693597a75e 100644
--- a/config-model/src/test/derived/advanced/index-info.cfg
+++ b/config-model/src/test/derived/advanced/index-info.cfg
@@ -5,18 +5,32 @@ indexinfo[].command[].indexname "sddocname"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "debug_src"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "debug_src"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "attributes_src"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "attributes_src"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "location_str"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "location_str"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "title_src"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "title_src"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "product_src"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "product_src"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "product2_src"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "product2_src"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "product3_src"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "product3_src"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "attributes"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "attributes"
@@ -25,6 +39,8 @@ indexinfo[].command[].indexname "attributes"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "attributes"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "attributes"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "debug"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "debug"
@@ -33,10 +49,14 @@ indexinfo[].command[].indexname "debug"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "debug"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "debug"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "location"
indexinfo[].command[].command "default-position"
indexinfo[].command[].indexname "location"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "location"
+indexinfo[].command[].command "type position"
indexinfo[].command[].indexname "location_zcurve"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "location_zcurve"
@@ -45,8 +65,12 @@ indexinfo[].command[].indexname "location_zcurve"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "location_zcurve"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "location_zcurve"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "mysummary"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mysummary"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "product"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "product"
@@ -55,6 +79,8 @@ indexinfo[].command[].indexname "product"
indexinfo[].command[].command "stem:BEST"
indexinfo[].command[].indexname "product"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "product"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "product2"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "product2"
@@ -63,6 +89,8 @@ indexinfo[].command[].indexname "product2"
indexinfo[].command[].command "stem:BEST"
indexinfo[].command[].indexname "product2"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "product2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "product3"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "product3"
@@ -71,6 +99,8 @@ indexinfo[].command[].indexname "product3"
indexinfo[].command[].command "stem:BEST"
indexinfo[].command[].indexname "product3"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "product3"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "title"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "title"
@@ -79,8 +109,12 @@ indexinfo[].command[].indexname "title"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "title"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "title"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "title_s"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "title_s"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "titleabstract"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "titleabstract"
diff --git a/config-model/src/test/derived/array_of_struct_attribute/index-info.cfg b/config-model/src/test/derived/array_of_struct_attribute/index-info.cfg
index ebe87df9852..de7b744a95b 100644
--- a/config-model/src/test/derived/array_of_struct_attribute/index-info.cfg
+++ b/config-model/src/test/derived/array_of_struct_attribute/index-info.cfg
@@ -10,6 +10,8 @@ indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "elem_array.name"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "elem_array.name"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "elem_array.name"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "elem_array.weight"
indexinfo[].command[].command "index"
@@ -17,7 +19,11 @@ indexinfo[].command[].indexname "elem_array.weight"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "elem_array.weight"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "elem_array.weight"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "elem_array"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "elem_array"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "elem_array"
+indexinfo[].command[].command "type Array<elem>"
diff --git a/config-model/src/test/derived/arrays/index-info.cfg b/config-model/src/test/derived/arrays/index-info.cfg
index e2a0ea9dedc..c51c927071d 100644
--- a/config-model/src/test/derived/arrays/index-info.cfg
+++ b/config-model/src/test/derived/arrays/index-info.cfg
@@ -15,12 +15,16 @@ indexinfo[].command[].indexname "tags"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "tags"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "tags"
+indexinfo[].command[].command "type Array<string>"
indexinfo[].command[].indexname "ratings"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "ratings"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "ratings"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "ratings"
+indexinfo[].command[].command "type Array<int>"
indexinfo[].command[].indexname "a"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a"
@@ -31,6 +35,8 @@ indexinfo[].command[].indexname "a"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "a"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "a"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "b"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "b"
@@ -43,6 +49,8 @@ indexinfo[].command[].indexname "b"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "b"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "b"
+indexinfo[].command[].command "type Array<string>"
indexinfo[].command[].indexname "c"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "c"
@@ -55,6 +63,8 @@ indexinfo[].command[].indexname "c"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "c"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "c"
+indexinfo[].command[].command "type WeightedSet<string>"
indexinfo[].command[].indexname "default"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "default"
diff --git a/config-model/src/test/derived/attributeprefetch/index-info.cfg b/config-model/src/test/derived/attributeprefetch/index-info.cfg
index a113e1f1b20..dcf49f787ab 100644
--- a/config-model/src/test/derived/attributeprefetch/index-info.cfg
+++ b/config-model/src/test/derived/attributeprefetch/index-info.cfg
@@ -9,103 +9,139 @@ indexinfo[].command[].indexname "singlebyte"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "singlebyte"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "singlebyte"
+indexinfo[].command[].command "type byte"
indexinfo[].command[].indexname "multibyte"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "multibyte"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "multibyte"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "multibyte"
+indexinfo[].command[].command "type Array<byte>"
indexinfo[].command[].indexname "wsbyte"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "wsbyte"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "wsbyte"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "wsbyte"
+indexinfo[].command[].command "type WeightedSet<byte>"
indexinfo[].command[].indexname "singleint"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "singleint"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "singleint"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "singleint"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "multiint"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "multiint"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "multiint"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "multiint"
+indexinfo[].command[].command "type Array<int>"
indexinfo[].command[].indexname "wsint"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "wsint"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "wsint"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "wsint"
+indexinfo[].command[].command "type WeightedSet<int>"
indexinfo[].command[].indexname "singlelong"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "singlelong"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "singlelong"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "singlelong"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "multilong"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "multilong"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "multilong"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "multilong"
+indexinfo[].command[].command "type Array<long>"
indexinfo[].command[].indexname "wslong"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "wslong"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "wslong"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "wslong"
+indexinfo[].command[].command "type WeightedSet<long>"
indexinfo[].command[].indexname "singlefloat"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "singlefloat"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "singlefloat"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "singlefloat"
+indexinfo[].command[].command "type float"
indexinfo[].command[].indexname "multifloat"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "multifloat"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "multifloat"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "multifloat"
+indexinfo[].command[].command "type Array<float>"
indexinfo[].command[].indexname "wsfloat"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "wsfloat"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "wsfloat"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "wsfloat"
+indexinfo[].command[].command "type WeightedSet<float>"
indexinfo[].command[].indexname "singledouble"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "singledouble"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "singledouble"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "singledouble"
+indexinfo[].command[].command "type double"
indexinfo[].command[].indexname "multidouble"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "multidouble"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "multidouble"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "multidouble"
+indexinfo[].command[].command "type Array<double>"
indexinfo[].command[].indexname "wsdouble"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "wsdouble"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "wsdouble"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "wsdouble"
+indexinfo[].command[].command "type WeightedSet<double>"
indexinfo[].command[].indexname "singlestring"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "singlestring"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "singlestring"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "multistring"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "multistring"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "multistring"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "multistring"
+indexinfo[].command[].command "type Array<string>"
indexinfo[].command[].indexname "wsstring"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "wsstring"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "wsstring"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "wsstring"
+indexinfo[].command[].command "type WeightedSet<string>"
diff --git a/config-model/src/test/derived/attributes/index-info.cfg b/config-model/src/test/derived/attributes/index-info.cfg
index 4b06e8dec36..aacd1baa060 100644
--- a/config-model/src/test/derived/attributes/index-info.cfg
+++ b/config-model/src/test/derived/attributes/index-info.cfg
@@ -7,16 +7,24 @@ indexinfo[].command[].indexname "a1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a1"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "a1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "a2"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a2"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "a2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "a3"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a3"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "a3"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "a4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "a4"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "a5"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a5"
@@ -27,6 +35,8 @@ indexinfo[].command[].indexname "a5"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "a5"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "a5"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "a6"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a6"
@@ -37,15 +47,23 @@ indexinfo[].command[].indexname "a6"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "a6"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "a6"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "a7"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "a7"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "a8"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "a8"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "b1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "b1"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "b1"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "b1"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "b2"
indexinfo[].command[].command "index"
@@ -57,6 +75,8 @@ indexinfo[].command[].indexname "b2"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "b2"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "b2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "b3"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "b3"
@@ -67,36 +87,48 @@ indexinfo[].command[].indexname "b3"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "b3"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "b3"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "b4"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "b4"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "b4"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "b4"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "b5"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "b5"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "b5"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "b5"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "b6"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "b6"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "b6"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "b6"
+indexinfo[].command[].command "type Array<long>"
indexinfo[].command[].indexname "b7"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "b7"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "b7"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "b7"
+indexinfo[].command[].command "type WeightedSet<double>"
indexinfo[].command[].indexname "a9"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a9"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "a9"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "a9"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "a10"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a10"
@@ -105,18 +137,24 @@ indexinfo[].command[].indexname "a10"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "a10"
indexinfo[].command[].command "fast-search"
+indexinfo[].command[].indexname "a10"
+indexinfo[].command[].command "type Array<int>"
indexinfo[].command[].indexname "a11"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a11"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "a11"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "a11"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "a12"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a12"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "a12"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "a12"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "a7_arr"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a7_arr"
@@ -124,6 +162,8 @@ indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "a7_arr"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "a7_arr"
+indexinfo[].command[].command "type Array<string>"
+indexinfo[].command[].indexname "a7_arr"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "a8_arr"
indexinfo[].command[].command "index"
@@ -132,6 +172,8 @@ indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "a8_arr"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "a8_arr"
+indexinfo[].command[].command "type Array<string>"
+indexinfo[].command[].indexname "a8_arr"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "default"
indexinfo[].command[].command "lowercase"
diff --git a/config-model/src/test/derived/combinedattributeandindexsearch/index-info.cfg b/config-model/src/test/derived/combinedattributeandindexsearch/index-info.cfg
index f88524ae220..e7bf410250f 100644
--- a/config-model/src/test/derived/combinedattributeandindexsearch/index-info.cfg
+++ b/config-model/src/test/derived/combinedattributeandindexsearch/index-info.cfg
@@ -13,6 +13,8 @@ indexinfo[].command[].indexname "index1"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "index1"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "index1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "index2"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "index2"
@@ -23,14 +25,20 @@ indexinfo[].command[].indexname "index2"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "index2"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "index2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "attribute1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "attribute1"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "attribute1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "attribute2"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "attribute2"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "attribute2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "default"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "default"
diff --git a/config-model/src/test/derived/emptydefault/index-info.cfg b/config-model/src/test/derived/emptydefault/index-info.cfg
index a506ef52b52..aa30192e826 100644
--- a/config-model/src/test/derived/emptydefault/index-info.cfg
+++ b/config-model/src/test/derived/emptydefault/index-info.cfg
@@ -13,6 +13,8 @@ indexinfo[].command[].indexname "one"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "one"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "one"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "two"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "two"
@@ -23,3 +25,5 @@ indexinfo[].command[].indexname "two"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "two"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "two"
+indexinfo[].command[].command "type string"
diff --git a/config-model/src/test/derived/exactmatch/index-info.cfg b/config-model/src/test/derived/exactmatch/index-info.cfg
index a4a193b1fcd..cdf38849a24 100644
--- a/config-model/src/test/derived/exactmatch/index-info.cfg
+++ b/config-model/src/test/derived/exactmatch/index-info.cfg
@@ -8,54 +8,80 @@ indexinfo[].command[].command "index"
indexinfo[].command[].indexname "tag"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "tag"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "tag"
indexinfo[].command[].command "exact @@"
indexinfo[].command[].indexname "screweduserids"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "screweduserids"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "screweduserids"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "screweduserids"
indexinfo[].command[].command "exact *!!!*"
indexinfo[].command[].indexname "string_map.key"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "string_map.key"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "string_map.key"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "string_map.key"
indexinfo[].command[].command "exact *!!!*"
indexinfo[].command[].indexname "string_map.value"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "string_map.value"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "string_map"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "string_map"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "string_map"
+indexinfo[].command[].command "type Map<string,string>"
indexinfo[].command[].indexname "elem_map.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "elem_map.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "elem_map.value.name"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "elem_map.value.name"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "elem_map.value.name"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "elem_map.value.name"
indexinfo[].command[].command "exact @@"
indexinfo[].command[].indexname "elem_map.value.weight"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "elem_map.value.weight"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "elem_map.value.weight"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "elem_map.value"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "elem_map.value"
+indexinfo[].command[].command "type elem"
indexinfo[].command[].indexname "elem_map"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "elem_map"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "elem_map"
+indexinfo[].command[].command "type Map<string,elem>"
indexinfo[].command[].indexname "elem_array.name"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "elem_array.name"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "elem_array.name"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "elem_array.name"
indexinfo[].command[].command "exact @@"
indexinfo[].command[].indexname "elem_array.weight"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "elem_array.weight"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "elem_array.weight"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "elem_array"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "elem_array"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "elem_array"
+indexinfo[].command[].command "type Array<elem>"
diff --git a/config-model/src/test/derived/fieldset/index-info.cfg b/config-model/src/test/derived/fieldset/index-info.cfg
index 25f37750cc9..b75bc006961 100644
--- a/config-model/src/test/derived/fieldset/index-info.cfg
+++ b/config-model/src/test/derived/fieldset/index-info.cfg
@@ -10,6 +10,8 @@ indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "word1"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "word1"
+indexinfo[].command[].command "type Array<string>"
+indexinfo[].command[].indexname "word1"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "word2"
indexinfo[].command[].command "index"
@@ -18,6 +20,8 @@ indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "word2"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "word2"
+indexinfo[].command[].command "type Array<string>"
+indexinfo[].command[].indexname "word2"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "words"
indexinfo[].command[].command "lowercase"
diff --git a/config-model/src/test/derived/id/index-info.cfg b/config-model/src/test/derived/id/index-info.cfg
index ca8daef9848..00d0c92d68e 100644
--- a/config-model/src/test/derived/id/index-info.cfg
+++ b/config-model/src/test/derived/id/index-info.cfg
@@ -27,17 +27,33 @@ indexinfo[].command[].indexname "uri.hostname"
indexinfo[].command[].command "urlhost"
indexinfo[].command[].indexname "uri.hostname"
indexinfo[].command[].command "lowercase"
+indexinfo[].command[].indexname "uri"
+indexinfo[].command[].command "type uri"
indexinfo[].command[].indexname "uri.fragment"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "uri.fragment"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "uri.host"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "uri.host"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "uri.hostname"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "uri.hostname"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "uri.path"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "uri.path"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "uri.port"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "uri.port"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "uri.query"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "uri.query"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "uri.scheme"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "uri.scheme"
+indexinfo[].command[].command "type string"
diff --git a/config-model/src/test/derived/imported_position_field/index-info.cfg b/config-model/src/test/derived/imported_position_field/index-info.cfg
index 4d1f76c9b4c..a36bcb20979 100644
--- a/config-model/src/test/derived/imported_position_field/index-info.cfg
+++ b/config-model/src/test/derived/imported_position_field/index-info.cfg
@@ -1,23 +1,29 @@
-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 "parent_ref"
-indexinfo[0].command[2].command "index"
-indexinfo[0].command[3].indexname "parent_ref"
-indexinfo[0].command[3].command "attribute"
-indexinfo[0].command[4].indexname "parent_ref"
-indexinfo[0].command[4].command "word"
-indexinfo[0].command[7].indexname "my_pos_zcurve"
-indexinfo[0].command[7].command "index"
-indexinfo[0].command[8].indexname "my_pos_zcurve"
-indexinfo[0].command[8].command "attribute"
-indexinfo[0].command[9].indexname "my_pos_zcurve"
-indexinfo[0].command[9].command "fast-search"
-indexinfo[0].command[10].indexname "my_pos_zcurve"
-indexinfo[0].command[10].command "numerical"
-indexinfo[0].command[11].indexname "my_pos"
-indexinfo[0].command[11].command "default-position"
-indexinfo[0].command[12].indexname "my_pos"
-indexinfo[0].command[12].command "index"
+indexinfo[].name "child"
+indexinfo[].command[].indexname "sddocname"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "sddocname"
+indexinfo[].command[].command "word"
+indexinfo[].command[].indexname "parent_ref"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "parent_ref"
+indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "parent_ref"
+indexinfo[].command[].command "type Reference<parent>"
+indexinfo[].command[].indexname "parent_ref"
+indexinfo[].command[].command "word"
+indexinfo[].command[].indexname "my_pos_zcurve"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "my_pos_zcurve"
+indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "my_pos_zcurve"
+indexinfo[].command[].command "fast-search"
+indexinfo[].command[].indexname "my_pos_zcurve"
+indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "my_pos_zcurve"
+indexinfo[].command[].command "type long"
+indexinfo[].command[].indexname "my_pos"
+indexinfo[].command[].command "default-position"
+indexinfo[].command[].indexname "my_pos"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "my_pos"
+indexinfo[].command[].command "type position"
diff --git a/config-model/src/test/derived/imported_position_field_summary/index-info.cfg b/config-model/src/test/derived/imported_position_field_summary/index-info.cfg
index bf7297851dd..a36bcb20979 100644
--- a/config-model/src/test/derived/imported_position_field_summary/index-info.cfg
+++ b/config-model/src/test/derived/imported_position_field_summary/index-info.cfg
@@ -8,6 +8,8 @@ indexinfo[].command[].command "index"
indexinfo[].command[].indexname "parent_ref"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "parent_ref"
+indexinfo[].command[].command "type Reference<parent>"
+indexinfo[].command[].indexname "parent_ref"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "my_pos_zcurve"
indexinfo[].command[].command "index"
@@ -17,7 +19,11 @@ indexinfo[].command[].indexname "my_pos_zcurve"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "my_pos_zcurve"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "my_pos_zcurve"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "my_pos"
indexinfo[].command[].command "default-position"
indexinfo[].command[].indexname "my_pos"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "my_pos"
+indexinfo[].command[].command "type position"
diff --git a/config-model/src/test/derived/imported_struct_fields/index-info.cfg b/config-model/src/test/derived/imported_struct_fields/index-info.cfg
index 4aa54dac933..a4cef79f861 100644
--- a/config-model/src/test/derived/imported_struct_fields/index-info.cfg
+++ b/config-model/src/test/derived/imported_struct_fields/index-info.cfg
@@ -8,9 +8,13 @@ indexinfo[].command[].command "index"
indexinfo[].command[].indexname "parent_ref"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "parent_ref"
+indexinfo[].command[].command "type Reference<parent>"
+indexinfo[].command[].indexname "parent_ref"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "documentid"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "documentid"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "my_elem_array.name"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "my_elem_array.name"
@@ -18,6 +22,8 @@ indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "my_elem_array.name"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "my_elem_array.name"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "my_elem_array.name"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "my_elem_array.weight"
indexinfo[].command[].command "index"
@@ -25,10 +31,14 @@ indexinfo[].command[].indexname "my_elem_array.weight"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "my_elem_array.weight"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "my_elem_array.weight"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "my_elem_array"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "my_elem_array"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "my_elem_array"
+indexinfo[].command[].command "type Array<elem>"
indexinfo[].command[].indexname "my_elem_map.value.name"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "my_elem_map.value.name"
@@ -36,6 +46,8 @@ indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "my_elem_map.value.name"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "my_elem_map.value.name"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "my_elem_map.value.name"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "my_elem_map.value.weight"
indexinfo[].command[].command "index"
@@ -43,8 +55,12 @@ indexinfo[].command[].indexname "my_elem_map.value.weight"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "my_elem_map.value.weight"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "my_elem_map.value.weight"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "my_elem_map.value"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "my_elem_map.value"
+indexinfo[].command[].command "type elem"
indexinfo[].command[].indexname "my_elem_map.key"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "my_elem_map.key"
@@ -52,11 +68,15 @@ indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "my_elem_map.key"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "my_elem_map.key"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "my_elem_map.key"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "my_elem_map"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "my_elem_map"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "my_elem_map"
+indexinfo[].command[].command "type Map<string,elem>"
indexinfo[].command[].indexname "my_str_int_map.key"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "my_str_int_map.key"
@@ -64,6 +84,8 @@ indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "my_str_int_map.key"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "my_str_int_map.key"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "my_str_int_map.key"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "my_str_int_map.value"
indexinfo[].command[].command "index"
@@ -71,7 +93,11 @@ indexinfo[].command[].indexname "my_str_int_map.value"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "my_str_int_map.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "my_str_int_map.value"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "my_str_int_map"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "my_str_int_map"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "my_str_int_map"
+indexinfo[].command[].command "type Map<string,int>"
diff --git a/config-model/src/test/derived/importedfields/index-info.cfg b/config-model/src/test/derived/importedfields/index-info.cfg
index bc688f48fc4..76382e4fd80 100644
--- a/config-model/src/test/derived/importedfields/index-info.cfg
+++ b/config-model/src/test/derived/importedfields/index-info.cfg
@@ -8,18 +8,24 @@ indexinfo[].command[].command "index"
indexinfo[].command[].indexname "a_ref"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "a_ref"
+indexinfo[].command[].command "type Reference<parent_a>"
+indexinfo[].command[].indexname "a_ref"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "b_ref"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "b_ref"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "b_ref"
+indexinfo[].command[].command "type Reference<parent_b>"
+indexinfo[].command[].indexname "b_ref"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "b_ref_with_summary"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "b_ref_with_summary"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "b_ref_with_summary"
+indexinfo[].command[].command "type Reference<parent_b>"
+indexinfo[].command[].indexname "b_ref_with_summary"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "my_int_field"
indexinfo[].command[].command "index"
@@ -27,11 +33,15 @@ indexinfo[].command[].indexname "my_int_field"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "my_int_field"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "my_int_field"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "my_string_field"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "my_string_field"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "my_string_field"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "my_string_field"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "my_int_array_field"
indexinfo[].command[].command "index"
@@ -39,18 +49,24 @@ indexinfo[].command[].indexname "my_int_array_field"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "my_int_array_field"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "my_int_array_field"
+indexinfo[].command[].command "type Array<int>"
indexinfo[].command[].indexname "my_int_wset_field"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "my_int_wset_field"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "my_int_wset_field"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "my_int_wset_field"
+indexinfo[].command[].command "type WeightedSet<int>"
indexinfo[].command[].indexname "my_ancient_int_field"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "my_ancient_int_field"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "my_ancient_int_field"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "my_ancient_int_field"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "myfieldset"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "myfieldset"
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 15d50762134..d08b080df7b 100644
--- a/config-model/src/test/derived/indexinfo_fieldsets/index-info.cfg
+++ b/config-model/src/test/derived/indexinfo_fieldsets/index-info.cfg
@@ -11,6 +11,8 @@ indexinfo[].command[].indexname "nostemming1"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "nostemming1"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "nostemming1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "nostemming2"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "nostemming2"
@@ -19,6 +21,8 @@ indexinfo[].command[].indexname "nostemming2"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "nostemming2"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "nostemming2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "nonormalizing1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "nonormalizing1"
@@ -27,6 +31,8 @@ indexinfo[].command[].indexname "nonormalizing1"
indexinfo[].command[].command "stem:BEST"
indexinfo[].command[].indexname "nonormalizing1"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "nonormalizing1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "nonormalizing2"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "nonormalizing2"
@@ -35,17 +41,23 @@ indexinfo[].command[].indexname "nonormalizing2"
indexinfo[].command[].command "stem:BEST"
indexinfo[].command[].indexname "nonormalizing2"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "nonormalizing2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "exact1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "exact1"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "exact1"
+indexinfo[].command[].command "type string"
+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 "type string"
+indexinfo[].command[].indexname "exact2"
indexinfo[].command[].command "exact @@"
indexinfo[].command[].indexname "nostemming"
indexinfo[].command[].command "lowercase"
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 f5815627d2b..ac640c09e8c 100644
--- a/config-model/src/test/derived/indexinfo_lowercase/index-info.cfg
+++ b/config-model/src/test/derived/indexinfo_lowercase/index-info.cfg
@@ -5,15 +5,23 @@ indexinfo[].command[].indexname "sddocname"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "lc_attribute_src"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "lc_attribute_src"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "lc_index_src"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "lc_index_src"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "lc_summary_src"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "lc_summary_src"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "nc_attribute"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "nc_attribute"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "nc_attribute"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "nc_attribute"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "nc_index"
indexinfo[].command[].command "index"
@@ -25,8 +33,12 @@ indexinfo[].command[].indexname "nc_index"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "nc_index"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "nc_index"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "nc_summary"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "nc_summary"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "lc_attribute"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "lc_attribute"
@@ -34,6 +46,8 @@ indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "lc_attribute"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "lc_attribute"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "lc_attribute"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "lc_index"
indexinfo[].command[].command "index"
@@ -45,10 +59,14 @@ indexinfo[].command[].indexname "lc_index"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "lc_index"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "lc_index"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "lc_summary"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "lc_summary"
indexinfo[].command[].command "lowercase"
+indexinfo[].command[].indexname "lc_summary"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "lc_set1"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "lc_set1"
diff --git a/config-model/src/test/derived/indexschema/index-info.cfg b/config-model/src/test/derived/indexschema/index-info.cfg
index 388b212689a..8a28038a18d 100644
--- a/config-model/src/test/derived/indexschema/index-info.cfg
+++ b/config-model/src/test/derived/indexschema/index-info.cfg
@@ -13,6 +13,8 @@ indexinfo[].command[].indexname "sa"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "sa"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "sa"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sb"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "sb"
@@ -23,6 +25,8 @@ indexinfo[].command[].indexname "sb"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "sb"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "sb"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sc"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "sc"
@@ -33,6 +37,8 @@ indexinfo[].command[].indexname "sc"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "sc"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "sc"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sd"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "sd"
@@ -44,6 +50,8 @@ indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "sd"
indexinfo[].command[].command "plain-tokens"
indexinfo[].command[].indexname "sd"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "sd"
indexinfo[].command[].command "phrase-segmenting false"
indexinfo[].command[].indexname "sd"
indexinfo[].command[].command "literal-boost"
@@ -51,19 +59,27 @@ indexinfo[].command[].indexname "pos.x"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pos.x"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pos.x"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "pos.y"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pos.y"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pos.y"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "pos"
indexinfo[].command[].command "default-position"
indexinfo[].command[].indexname "pos"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "pos"
+indexinfo[].command[].command "type position"
indexinfo[].command[].indexname "se"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "se"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "se"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "se"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "sf"
indexinfo[].command[].command "index"
@@ -77,6 +93,8 @@ indexinfo[].command[].indexname "sf"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "sf"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "sf"
+indexinfo[].command[].command "type Array<string>"
indexinfo[].command[].indexname "sg"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "sg"
@@ -89,6 +107,8 @@ indexinfo[].command[].indexname "sg"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "sg"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "sg"
+indexinfo[].command[].command "type WeightedSet<string>"
indexinfo[].command[].indexname "sh"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "sh"
@@ -113,6 +133,8 @@ indexinfo[].command[].indexname "sh.hostname"
indexinfo[].command[].command "urlhost"
indexinfo[].command[].indexname "sh.hostname"
indexinfo[].command[].command "lowercase"
+indexinfo[].command[].indexname "sh"
+indexinfo[].command[].command "type uri"
indexinfo[].command[].indexname "si"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "si"
@@ -123,17 +145,23 @@ indexinfo[].command[].indexname "si"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "si"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "si"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "exact1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "exact1"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "exact1"
+indexinfo[].command[].command "type string"
+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 "type string"
+indexinfo[].command[].indexname "exact2"
indexinfo[].command[].command "exact @@"
indexinfo[].command[].indexname "bm25_field"
indexinfo[].command[].command "index"
@@ -145,24 +173,32 @@ indexinfo[].command[].indexname "bm25_field"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "bm25_field"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "bm25_field"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "ia"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "ia"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "ia"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "ia"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "ib"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "ib"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "ib"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "ib"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "ic"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "ic"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "ic"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "ic"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "nostemstring1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "nostemstring1"
@@ -171,6 +207,8 @@ indexinfo[].command[].indexname "nostemstring1"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "nostemstring1"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "nostemstring1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "nostemstring2"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "nostemstring2"
@@ -179,6 +217,8 @@ indexinfo[].command[].indexname "nostemstring2"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "nostemstring2"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "nostemstring2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "nostemstring3"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "nostemstring3"
@@ -187,6 +227,8 @@ indexinfo[].command[].indexname "nostemstring3"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "nostemstring3"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "nostemstring3"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "nostemstring4"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "nostemstring4"
@@ -195,6 +237,8 @@ indexinfo[].command[].indexname "nostemstring4"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "nostemstring4"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "nostemstring4"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "fs9"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "fs9"
@@ -205,6 +249,8 @@ indexinfo[].command[].indexname "fs9"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "fs9"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "fs9"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "f10.text"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "f10.text"
@@ -215,12 +261,18 @@ indexinfo[].command[].indexname "f10.text"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "f10.text"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "f10.text"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "f10.name"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "f10.name"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "f10"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "f10"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "f10"
+indexinfo[].command[].command "type Array<part>"
indexinfo[].command[].indexname "pos_zcurve"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pos_zcurve"
@@ -229,32 +281,54 @@ indexinfo[].command[].indexname "pos_zcurve"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "pos_zcurve"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pos_zcurve"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "sd_literal"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "sd_literal"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "sd_literal"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "sd_literal"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "searchfield1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "searchfield1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "searchfield2"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "searchfield2"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "searchfield2"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "sh.fragment"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "sh.fragment"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sh.host"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "sh.host"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sh.hostname"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "sh.hostname"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sh.path"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "sh.path"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sh.port"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "sh.port"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sh.query"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "sh.query"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sh.scheme"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "sh.scheme"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sa"
indexinfo[].command[].command "dynteaser"
indexinfo[].command[].indexname "fs1"
diff --git a/config-model/src/test/derived/indexswitches/index-info.cfg b/config-model/src/test/derived/indexswitches/index-info.cfg
index 1ba38ad554b..ae1eb48952f 100644
--- a/config-model/src/test/derived/indexswitches/index-info.cfg
+++ b/config-model/src/test/derived/indexswitches/index-info.cfg
@@ -13,6 +13,8 @@ indexinfo[].command[].indexname "title"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "title"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "title"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "descr"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "descr"
@@ -23,8 +25,12 @@ indexinfo[].command[].indexname "descr"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "descr"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "descr"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "source_src"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "source_src"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "source"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "source"
@@ -33,6 +39,8 @@ indexinfo[].command[].indexname "source"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "source"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "source"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "default"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "default"
diff --git a/config-model/src/test/derived/inheritance/index-info.cfg b/config-model/src/test/derived/inheritance/index-info.cfg
index ff3aad45906..d8849778c23 100644
--- a/config-model/src/test/derived/inheritance/index-info.cfg
+++ b/config-model/src/test/derived/inheritance/index-info.cfg
@@ -9,14 +9,20 @@ indexinfo[].command[].indexname "onlygrandparent"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "onlygrandparent"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "onlygrandparent"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "overridden"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "overridden"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "overridden"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "overridden"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "onlyfather"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "onlyfather"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "onlymother"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "onlymother"
@@ -27,6 +33,8 @@ indexinfo[].command[].indexname "onlymother"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "onlymother"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "onlymother"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "onlychild"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "onlychild"
@@ -37,3 +45,5 @@ indexinfo[].command[].indexname "onlychild"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "onlychild"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "onlychild"
+indexinfo[].command[].command "type string"
diff --git a/config-model/src/test/derived/inheritstruct/index-info.cfg b/config-model/src/test/derived/inheritstruct/index-info.cfg
index 2d5b832a07f..21e68f0c127 100644
--- a/config-model/src/test/derived/inheritstruct/index-info.cfg
+++ b/config-model/src/test/derived/inheritstruct/index-info.cfg
@@ -13,9 +13,13 @@ indexinfo[].command[].indexname "child_struct_field.my_str"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "child_struct_field.my_str"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "child_struct_field.my_str"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "child_struct_field"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "child_struct_field"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "child_struct_field"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "child_struct_field"
+indexinfo[].command[].command "type my_struct"
diff --git a/config-model/src/test/derived/map_attribute/index-info.cfg b/config-model/src/test/derived/map_attribute/index-info.cfg
index 67c6bbf4d1b..51ab1f07a43 100644
--- a/config-model/src/test/derived/map_attribute/index-info.cfg
+++ b/config-model/src/test/derived/map_attribute/index-info.cfg
@@ -10,28 +10,40 @@ indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "str_map.key"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "str_map.key"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "str_map.key"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "str_map.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "str_map.value"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "str_map.value"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "str_map.value"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "str_map"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "str_map"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "str_map"
+indexinfo[].command[].command "type Map<string,string>"
indexinfo[].command[].indexname "int_map.key"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "int_map.key"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "int_map.key"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "int_map.key"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "int_map.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "int_map.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "int_map.value"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "int_map"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "int_map"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "int_map"
+indexinfo[].command[].command "type Map<int,int>"
diff --git a/config-model/src/test/derived/map_of_struct_attribute/index-info.cfg b/config-model/src/test/derived/map_of_struct_attribute/index-info.cfg
index 84296b00a5d..606012c17e2 100644
--- a/config-model/src/test/derived/map_of_struct_attribute/index-info.cfg
+++ b/config-model/src/test/derived/map_of_struct_attribute/index-info.cfg
@@ -10,12 +10,16 @@ indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "str_elem_map.key"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "str_elem_map.key"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "str_elem_map.key"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "str_elem_map.value.name"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "str_elem_map.value.name"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "str_elem_map.value.name"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "str_elem_map.value.name"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "str_elem_map.value.weight"
indexinfo[].command[].command "index"
@@ -23,18 +27,26 @@ indexinfo[].command[].indexname "str_elem_map.value.weight"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "str_elem_map.value.weight"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "str_elem_map.value.weight"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "str_elem_map.value"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "str_elem_map.value"
+indexinfo[].command[].command "type elem"
indexinfo[].command[].indexname "str_elem_map"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "str_elem_map"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "str_elem_map"
+indexinfo[].command[].command "type Map<string,elem>"
indexinfo[].command[].indexname "int_elem_map.key"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "int_elem_map.key"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "int_elem_map.key"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "int_elem_map.key"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "int_elem_map.value.name"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "int_elem_map.value.name"
@@ -42,14 +54,22 @@ indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "int_elem_map.value.name"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "int_elem_map.value.name"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "int_elem_map.value.name"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "int_elem_map.value.weight"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "int_elem_map.value.weight"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "int_elem_map.value.weight"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "int_elem_map.value"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "int_elem_map.value"
+indexinfo[].command[].command "type elem"
indexinfo[].command[].indexname "int_elem_map"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "int_elem_map"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "int_elem_map"
+indexinfo[].command[].command "type Map<int,elem>"
diff --git a/config-model/src/test/derived/music/index-info.cfg b/config-model/src/test/derived/music/index-info.cfg
index 9e26df5fbea..4d44bc7acbe 100644
--- a/config-model/src/test/derived/music/index-info.cfg
+++ b/config-model/src/test/derived/music/index-info.cfg
@@ -5,18 +5,24 @@ indexinfo[].command[].indexname "sddocname"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "bgndata"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "bgndata"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sales"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "sales"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "sales"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "sales"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "pto"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pto"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "pto"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pto"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "keys"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "keys"
@@ -27,12 +33,16 @@ indexinfo[].command[].indexname "keys"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "keys"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "keys"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mid"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "mid"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "mid"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "mid"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "ew"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "ew"
@@ -43,24 +53,38 @@ indexinfo[].command[].indexname "ew"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "ew"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "ew"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "surl"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "surl"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "userrate"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "userrate"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "userrate"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "pid"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "pid"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "weight"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "weight"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "weight"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "weight"
+indexinfo[].command[].command "type float"
indexinfo[].command[].indexname "url"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "url"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "isbn"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "isbn"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "fmt"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "fmt"
@@ -71,10 +95,16 @@ indexinfo[].command[].indexname "fmt"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "fmt"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "fmt"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "albumid"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "albumid"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "disp_song"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "disp_song"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "song"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "song"
@@ -85,16 +115,22 @@ indexinfo[].command[].indexname "song"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "song"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "song"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "pfrom"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pfrom"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pfrom"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "bgnpfrom"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "bgnpfrom"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "bgnpfrom"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "bgnpfrom"
+indexinfo[].command[].command "type float"
indexinfo[].command[].indexname "categories"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "categories"
@@ -105,18 +141,28 @@ indexinfo[].command[].indexname "categories"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "categories"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "categories"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "data"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "data"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "numreview"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "numreview"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "numreview"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "bgnsellers"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "bgnsellers"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "bgnsellers"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "image"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "image"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "artist"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "artist"
@@ -127,8 +173,12 @@ indexinfo[].command[].indexname "artist"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "artist"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "artist"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "artistspid"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "artistspid"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "title"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "title"
@@ -139,40 +189,58 @@ indexinfo[].command[].indexname "title"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "title"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "title"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "newestedition"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "newestedition"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "newestedition"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "newestedition"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "bgnpto"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "bgnpto"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "year"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "year"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "year"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "year"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "did"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "did"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "did"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "did"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "scorekey"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "scorekey"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "scorekey"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "cbid"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "cbid"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "cbid"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "cbid"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "metalvalue"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "metalvalue"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "hiphopvalue"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "hiphopvalue"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "powermetalvalue"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "powermetalvalue"
@@ -183,6 +251,8 @@ indexinfo[].command[].indexname "powermetalvalue"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "powermetalvalue"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "powermetalvalue"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "progvalue"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "progvalue"
@@ -193,6 +263,8 @@ indexinfo[].command[].indexname "progvalue"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "progvalue"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "progvalue"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "hiphopvalue_arr"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "hiphopvalue_arr"
@@ -200,6 +272,8 @@ indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "hiphopvalue_arr"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "hiphopvalue_arr"
+indexinfo[].command[].command "type Array<string>"
+indexinfo[].command[].indexname "hiphopvalue_arr"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "metalvalue_arr"
indexinfo[].command[].command "index"
@@ -208,6 +282,8 @@ indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "metalvalue_arr"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "metalvalue_arr"
+indexinfo[].command[].command "type Array<string>"
+indexinfo[].command[].indexname "metalvalue_arr"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "bgndata"
indexinfo[].command[].command "dynteaser"
diff --git a/config-model/src/test/derived/newrank/index-info.cfg b/config-model/src/test/derived/newrank/index-info.cfg
index 6967bf43538..20f8784fcf0 100644
--- a/config-model/src/test/derived/newrank/index-info.cfg
+++ b/config-model/src/test/derived/newrank/index-info.cfg
@@ -5,18 +5,24 @@ indexinfo[].command[].indexname "sddocname"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "bgndata"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "bgndata"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "sales"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "sales"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "sales"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "sales"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "pto"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pto"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "pto"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pto"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "keys"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "keys"
@@ -27,12 +33,16 @@ indexinfo[].command[].indexname "keys"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "keys"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "keys"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mid"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "mid"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "mid"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "mid"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "ew"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "ew"
@@ -43,24 +53,38 @@ indexinfo[].command[].indexname "ew"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "ew"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "ew"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "surl"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "surl"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "userrate"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "userrate"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "userrate"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "pid"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "pid"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "weight"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "weight"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "weight"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "weight"
+indexinfo[].command[].command "type float"
indexinfo[].command[].indexname "url"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "url"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "isbn"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "isbn"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "fmt"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "fmt"
@@ -71,10 +95,16 @@ indexinfo[].command[].indexname "fmt"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "fmt"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "fmt"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "albumid"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "albumid"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "disp_song"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "disp_song"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "song"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "song"
@@ -85,16 +115,22 @@ indexinfo[].command[].indexname "song"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "song"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "song"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "pfrom"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pfrom"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pfrom"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "bgnpfrom"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "bgnpfrom"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "bgnpfrom"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "bgnpfrom"
+indexinfo[].command[].command "type float"
indexinfo[].command[].indexname "categories"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "categories"
@@ -105,18 +141,28 @@ indexinfo[].command[].indexname "categories"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "categories"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "categories"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "data"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "data"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "numreview"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "numreview"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "numreview"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "bgnsellers"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "bgnsellers"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "bgnsellers"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "image"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "image"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "artist"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "artist"
@@ -127,8 +173,12 @@ indexinfo[].command[].indexname "artist"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "artist"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "artist"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "artistspid"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "artistspid"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "title"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "title"
@@ -139,38 +189,52 @@ indexinfo[].command[].indexname "title"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "title"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "title"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "newestedition"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "newestedition"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "newestedition"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "newestedition"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "bgnpto"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "bgnpto"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "year"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "year"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "year"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "year"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "did"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "did"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "did"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "did"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "scorekey"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "scorekey"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "scorekey"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "scorekey"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "cbid"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "cbid"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "cbid"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "cbid"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "bgndata"
indexinfo[].command[].command "dynteaser"
indexinfo[].command[].indexname "ew"
diff --git a/config-model/src/test/derived/position_array/index-info.cfg b/config-model/src/test/derived/position_array/index-info.cfg
index e4b9ebb5008..c8008e9d440 100644
--- a/config-model/src/test/derived/position_array/index-info.cfg
+++ b/config-model/src/test/derived/position_array/index-info.cfg
@@ -7,16 +7,22 @@ indexinfo[].command[].indexname "pos.x"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pos.x"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pos.x"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "pos.y"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pos.y"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pos.y"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "pos"
indexinfo[].command[].command "default-position"
indexinfo[].command[].indexname "pos"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pos"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "pos"
+indexinfo[].command[].command "type Array<position>"
indexinfo[].command[].indexname "pos_zcurve"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pos_zcurve"
@@ -25,3 +31,5 @@ indexinfo[].command[].indexname "pos_zcurve"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "pos_zcurve"
indexinfo[].command[].command "fast-search"
+indexinfo[].command[].indexname "pos_zcurve"
+indexinfo[].command[].command "type Array<long>"
diff --git a/config-model/src/test/derived/position_attribute/index-info.cfg b/config-model/src/test/derived/position_attribute/index-info.cfg
index 75a8ada6193..92d8876cfed 100644
--- a/config-model/src/test/derived/position_attribute/index-info.cfg
+++ b/config-model/src/test/derived/position_attribute/index-info.cfg
@@ -7,14 +7,20 @@ indexinfo[].command[].indexname "pos.x"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pos.x"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pos.x"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "pos.y"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pos.y"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pos.y"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "pos"
indexinfo[].command[].command "default-position"
indexinfo[].command[].indexname "pos"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "pos"
+indexinfo[].command[].command "type position"
indexinfo[].command[].indexname "pos_zcurve"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pos_zcurve"
@@ -23,3 +29,5 @@ indexinfo[].command[].indexname "pos_zcurve"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "pos_zcurve"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pos_zcurve"
+indexinfo[].command[].command "type long"
diff --git a/config-model/src/test/derived/position_extra/index-info.cfg b/config-model/src/test/derived/position_extra/index-info.cfg
index 945508f9518..45813140b1d 100644
--- a/config-model/src/test/derived/position_extra/index-info.cfg
+++ b/config-model/src/test/derived/position_extra/index-info.cfg
@@ -5,10 +5,14 @@ indexinfo[].command[].indexname "sddocname"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "pos_str"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "pos_str"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "pos_ext"
indexinfo[].command[].command "default-position"
indexinfo[].command[].indexname "pos_ext"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "pos_ext"
+indexinfo[].command[].command "type position"
indexinfo[].command[].indexname "pos_ext_zcurve"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pos_ext_zcurve"
@@ -17,3 +21,5 @@ indexinfo[].command[].indexname "pos_ext_zcurve"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "pos_ext_zcurve"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "pos_ext_zcurve"
+indexinfo[].command[].command "type long"
diff --git a/config-model/src/test/derived/predicate_attribute/index-info.cfg b/config-model/src/test/derived/predicate_attribute/index-info.cfg
index 4ebac65e1f5..615f86b8c02 100644
--- a/config-model/src/test/derived/predicate_attribute/index-info.cfg
+++ b/config-model/src/test/derived/predicate_attribute/index-info.cfg
@@ -11,3 +11,5 @@ indexinfo[].command[].indexname "some_predicate_field"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "some_predicate_field"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "some_predicate_field"
+indexinfo[].command[].command "type predicate"
diff --git a/config-model/src/test/derived/prefixexactattribute/index-info.cfg b/config-model/src/test/derived/prefixexactattribute/index-info.cfg
index e0d5786ef13..941c5b598cf 100644
--- a/config-model/src/test/derived/prefixexactattribute/index-info.cfg
+++ b/config-model/src/test/derived/prefixexactattribute/index-info.cfg
@@ -13,27 +13,37 @@ indexinfo[].command[].indexname "indexfield0"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "indexfield0"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "indexfield0"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "attributefield1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "attributefield1"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "attributefield1"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "attributefield1"
indexinfo[].command[].command "exact @"
indexinfo[].command[].indexname "attributefield2"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "attributefield2"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "attributefield2"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "attributefield2"
indexinfo[].command[].command "exact @"
indexinfo[].command[].indexname "indexfield1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "indexfield1"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "indexfield1"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "indexfield1"
indexinfo[].command[].command "exact @"
indexinfo[].command[].indexname "indexfield2"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "indexfield2"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "indexfield2"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "indexfield2"
indexinfo[].command[].command "exact @"
diff --git a/config-model/src/test/derived/ranktypes/index-info.cfg b/config-model/src/test/derived/ranktypes/index-info.cfg
index 112183ceac5..9ff5ee0635d 100644
--- a/config-model/src/test/derived/ranktypes/index-info.cfg
+++ b/config-model/src/test/derived/ranktypes/index-info.cfg
@@ -13,6 +13,8 @@ indexinfo[].command[].indexname "title"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "title"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "title"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "descr"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "descr"
@@ -23,6 +25,8 @@ indexinfo[].command[].indexname "descr"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "descr"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "descr"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "keywords"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "keywords"
@@ -33,6 +37,8 @@ indexinfo[].command[].indexname "keywords"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "keywords"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "keywords"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "identity"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "identity"
@@ -44,6 +50,8 @@ indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "identity"
indexinfo[].command[].command "plain-tokens"
indexinfo[].command[].indexname "identity"
+indexinfo[].command[].command "type string"
+indexinfo[].command[].indexname "identity"
indexinfo[].command[].command "literal-boost"
indexinfo[].command[].indexname "identity_literal"
indexinfo[].command[].command "index"
@@ -51,3 +59,5 @@ indexinfo[].command[].indexname "identity_literal"
indexinfo[].command[].command "lowercase"
indexinfo[].command[].indexname "identity_literal"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "identity_literal"
+indexinfo[].command[].command "type string"
diff --git a/config-model/src/test/derived/structanyorder/index-info.cfg b/config-model/src/test/derived/structanyorder/index-info.cfg
index 7a8b06bceec..10afd9b6f10 100644
--- a/config-model/src/test/derived/structanyorder/index-info.cfg
+++ b/config-model/src/test/derived/structanyorder/index-info.cfg
@@ -5,239 +5,439 @@ indexinfo[].command[].indexname "sddocname"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "structfield.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structfield.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structfield.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structfield.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structfield.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structfield.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structfield.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structfield.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structfield.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structfield.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structfield.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structfield.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structfield.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structfield.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structfield.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structfield.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structfield.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structfield"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structarrayfield.s3.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structarrayfield.s3.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s3.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structarrayfield.s3.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structarrayfield.s3.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structarrayfield.s3.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structarrayfield.s3"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s3"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s4.s1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structarrayfield.s4.s1"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "structarrayfield.s4.s1"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "structarrayfield.s4"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s4"
+indexinfo[].command[].command "type foo"
indexinfo[].command[].indexname "structarrayfield"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structarrayfield"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "structarrayfield"
+indexinfo[].command[].command "type Array<sct>"
diff --git a/config-model/src/test/derived/tensor/index-info.cfg b/config-model/src/test/derived/tensor/index-info.cfg
new file mode 100644
index 00000000000..ba8d2d7e086
--- /dev/null
+++ b/config-model/src/test/derived/tensor/index-info.cfg
@@ -0,0 +1,49 @@
+indexinfo[].name "tensor"
+indexinfo[].command[].indexname "sddocname"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "sddocname"
+indexinfo[].command[].command "word"
+indexinfo[].command[].indexname "f1"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "f1"
+indexinfo[].command[].command "type tensor(x[3])"
+indexinfo[].command[].indexname "f2"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "f2"
+indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "f2"
+indexinfo[].command[].command "type tensor<float>(x[2],y[1])"
+indexinfo[].command[].indexname "f2"
+indexinfo[].command[].command "word"
+indexinfo[].command[].indexname "f3"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "f3"
+indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "f3"
+indexinfo[].command[].command "type tensor(x{})"
+indexinfo[].command[].indexname "f3"
+indexinfo[].command[].command "word"
+indexinfo[].command[].indexname "f4"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "f4"
+indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "f4"
+indexinfo[].command[].command "type tensor(x[10],y[10])"
+indexinfo[].command[].indexname "f4"
+indexinfo[].command[].command "word"
+indexinfo[].command[].indexname "f5"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "f5"
+indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "f5"
+indexinfo[].command[].command "type tensor<float>(x[10])"
+indexinfo[].command[].indexname "f5"
+indexinfo[].command[].command "word"
+indexinfo[].command[].indexname "f6"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "f6"
+indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "f6"
+indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "f6"
+indexinfo[].command[].command "type float"
diff --git a/config-model/src/test/derived/types/index-info.cfg b/config-model/src/test/derived/types/index-info.cfg
index 6332316e7d0..cb10bb561d5 100644
--- a/config-model/src/test/derived/types/index-info.cfg
+++ b/config-model/src/test/derived/types/index-info.cfg
@@ -9,17 +9,23 @@ indexinfo[].command[].indexname "abyte"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "abyte"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "abyte"
+indexinfo[].command[].command "type byte"
indexinfo[].command[].indexname "along"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "along"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "along"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "along"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "abool"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "abool"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "abool"
+indexinfo[].command[].command "type bool"
+indexinfo[].command[].indexname "abool"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "ashortfloat"
indexinfo[].command[].command "index"
@@ -27,18 +33,24 @@ indexinfo[].command[].indexname "ashortfloat"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "ashortfloat"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "ashortfloat"
+indexinfo[].command[].command "type float16"
indexinfo[].command[].indexname "arrayfield"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "arrayfield"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "arrayfield"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "arrayfield"
+indexinfo[].command[].command "type Array<int>"
indexinfo[].command[].indexname "setfield"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "setfield"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "setfield"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "setfield"
+indexinfo[].command[].command "type WeightedSet<string>"
indexinfo[].command[].indexname "setfield2"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "setfield2"
@@ -46,6 +58,8 @@ indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "setfield2"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "setfield2"
+indexinfo[].command[].command "type WeightedSet<string>"
+indexinfo[].command[].indexname "setfield2"
indexinfo[].command[].command "word"
indexinfo[].command[].indexname "setfield3"
indexinfo[].command[].command "index"
@@ -53,32 +67,50 @@ indexinfo[].command[].indexname "setfield3"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "setfield3"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "setfield3"
+indexinfo[].command[].command "type WeightedSet<string>"
indexinfo[].command[].indexname "setfield4"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "setfield4"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "setfield4"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "setfield4"
+indexinfo[].command[].command "type WeightedSet<string>"
indexinfo[].command[].indexname "tagfield"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "tagfield"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "tagfield"
indexinfo[].command[].command "attribute"
+indexinfo[].command[].indexname "tagfield"
+indexinfo[].command[].command "type tag"
indexinfo[].command[].indexname "structfield.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structfield"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structfield"
+indexinfo[].command[].command "type sct"
indexinfo[].command[].indexname "structarrayfield.s1"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s1"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield.s2"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "structarrayfield.s2"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "structarrayfield"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "structarrayfield"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "structarrayfield"
+indexinfo[].command[].command "type Array<sct>"
indexinfo[].command[].indexname "stringmapfield.key"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "stringmapfield.key"
@@ -89,6 +121,8 @@ indexinfo[].command[].indexname "stringmapfield.key"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "stringmapfield.key"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "stringmapfield.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "stringmapfield.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "stringmapfield.value"
@@ -99,6 +133,8 @@ indexinfo[].command[].indexname "stringmapfield.value"
indexinfo[].command[].command "normalize"
indexinfo[].command[].indexname "stringmapfield.value"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "stringmapfield.value"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "stringmapfield"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "stringmapfield"
@@ -107,304 +143,506 @@ indexinfo[].command[].indexname "stringmapfield"
indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "stringmapfield"
indexinfo[].command[].command "plain-tokens"
+indexinfo[].command[].indexname "stringmapfield"
+indexinfo[].command[].command "type Map<string,string>"
indexinfo[].command[].indexname "intmapfield.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "intmapfield.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "intmapfield.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "intmapfield.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "intmapfield.value"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "intmapfield"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "intmapfield"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "intmapfield"
+indexinfo[].command[].command "type Map<string,int>"
indexinfo[].command[].indexname "floatmapfield.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "floatmapfield.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "floatmapfield.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "floatmapfield.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "floatmapfield.value"
+indexinfo[].command[].command "type float"
indexinfo[].command[].indexname "floatmapfield"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "floatmapfield"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "floatmapfield"
+indexinfo[].command[].command "type Map<string,float>"
indexinfo[].command[].indexname "longmapfield.key"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "longmapfield.key"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "longmapfield.key"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "longmapfield.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "longmapfield.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "longmapfield.value"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "longmapfield"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "longmapfield"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "longmapfield"
+indexinfo[].command[].command "type Map<int,long>"
indexinfo[].command[].indexname "doublemapfield.key"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "doublemapfield.key"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "doublemapfield.key"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "doublemapfield.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "doublemapfield.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "doublemapfield.value"
+indexinfo[].command[].command "type double"
indexinfo[].command[].indexname "doublemapfield"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "doublemapfield"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "doublemapfield"
+indexinfo[].command[].command "type Map<int,double>"
indexinfo[].command[].indexname "arraymapfield.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "arraymapfield.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "arraymapfield.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "arraymapfield.value"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "arraymapfield.value"
+indexinfo[].command[].command "type Array<int>"
indexinfo[].command[].indexname "arraymapfield"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "arraymapfield"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "arraymapfield"
+indexinfo[].command[].command "type Map<string,Array<int>>"
indexinfo[].command[].indexname "arrarr"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "arrarr"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "arrarr"
+indexinfo[].command[].command "type Array<Array<Array<string>>>"
indexinfo[].command[].indexname "maparr"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "maparr"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "maparr"
+indexinfo[].command[].command "type Array<Map<string,string>>"
+indexinfo[].command[].indexname "complexarray"
+indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "complexarray"
+indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "complexarray"
+indexinfo[].command[].command "type Array<Map<int,Array<Array<string>>>>"
indexinfo[].command[].indexname "mystructfield.bytearr"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "mystructfield.bytearr"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "mystructfield.bytearr"
+indexinfo[].command[].command "type Array<byte>"
indexinfo[].command[].indexname "mystructfield.mymap.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructfield.mymap.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructfield.mymap.value"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructfield.mymap.value"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructfield.mymap"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "mystructfield.mymap"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "mystructfield.mymap"
+indexinfo[].command[].command "type Map<string,string>"
indexinfo[].command[].indexname "mystructfield.title"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructfield.title"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructfield.structfield"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructfield.structfield"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructfield"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructfield"
+indexinfo[].command[].command "type mystruct"
indexinfo[].command[].indexname "mystructmap.key"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "mystructmap.key"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "mystructmap.key"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "mystructmap.value.bytearr"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "mystructmap.value.bytearr"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "mystructmap.value.bytearr"
+indexinfo[].command[].command "type Array<byte>"
indexinfo[].command[].indexname "mystructmap.value.mymap.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructmap.value.mymap.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructmap.value.mymap.value"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructmap.value.mymap.value"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructmap.value.mymap"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "mystructmap.value.mymap"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "mystructmap.value.mymap"
+indexinfo[].command[].command "type Map<string,string>"
indexinfo[].command[].indexname "mystructmap.value.title"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructmap.value.title"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructmap.value.structfield"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructmap.value.structfield"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructmap.value"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructmap.value"
+indexinfo[].command[].command "type mystruct"
indexinfo[].command[].indexname "mystructmap"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "mystructmap"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "mystructmap"
+indexinfo[].command[].command "type Map<int,mystruct>"
indexinfo[].command[].indexname "mystructarr.bytearr"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "mystructarr.bytearr"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "mystructarr.bytearr"
+indexinfo[].command[].command "type Array<byte>"
indexinfo[].command[].indexname "mystructarr.mymap.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructarr.mymap.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructarr.mymap.value"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructarr.mymap.value"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructarr.mymap"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "mystructarr.mymap"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "mystructarr.mymap"
+indexinfo[].command[].command "type Map<string,string>"
indexinfo[].command[].indexname "mystructarr.title"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructarr.title"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructarr.structfield"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "mystructarr.structfield"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "mystructarr"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "mystructarr"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "mystructarr"
+indexinfo[].command[].command "type Array<mystruct>"
indexinfo[].command[].indexname "Folders.key"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.key"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.key"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "Folders.value.Version"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.Version"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.Version"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "Folders.value.Name"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.Name"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.FlagsCounter.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.FlagsCounter.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.FlagsCounter.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.FlagsCounter.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.FlagsCounter.value"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "Folders.value.FlagsCounter"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.FlagsCounter"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "Folders.value.FlagsCounter"
+indexinfo[].command[].command "type Map<string,long>"
indexinfo[].command[].indexname "Folders.value.anotherfolder.Version"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.Version"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.Version"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "Folders.value.anotherfolder.Name"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.Name"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.FlagsCounter.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.FlagsCounter.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.FlagsCounter.value"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "Folders.value.anotherfolder.FlagsCounter"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.FlagsCounter"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.FlagsCounter"
+indexinfo[].command[].command "type Map<string,long>"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.Version"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.Name"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.Name"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[].command[].command "type Map<string,long>"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.Name"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[].command[].command "type Map<string,long>"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[].command[].command "type Map<string,long>"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[].command[].command "type Map<string,long>"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[].command[].command "type Map<string,long>"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[].command[].command "type Map<string,long>"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Version"
+indexinfo[].command[].command "type int"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.Name"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.key"
+indexinfo[].command[].command "type string"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter.value"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.FlagsCounter"
+indexinfo[].command[].command "type Map<string,long>"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[].command[].command "type folder"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[].command[].command "type folder"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[].command[].command "type folder"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[].command[].command "type folder"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[].command[].command "type folder"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[].command[].command "type folder"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder.anotherfolder"
+indexinfo[].command[].command "type folder"
indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder.anotherfolder"
+indexinfo[].command[].command "type folder"
indexinfo[].command[].indexname "Folders.value.anotherfolder"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value.anotherfolder"
+indexinfo[].command[].command "type folder"
indexinfo[].command[].indexname "Folders.value"
indexinfo[].command[].command "index"
+indexinfo[].command[].indexname "Folders.value"
+indexinfo[].command[].command "type folder"
indexinfo[].command[].indexname "Folders"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "Folders"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "Folders"
+indexinfo[].command[].command "type Map<int,folder>"
indexinfo[].command[].indexname "juletre"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "juletre"
@@ -413,10 +651,14 @@ indexinfo[].command[].indexname "juletre"
indexinfo[].command[].command "fast-search"
indexinfo[].command[].indexname "juletre"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "juletre"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "album0"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "album0"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "album0"
+indexinfo[].command[].command "type WeightedSet<string>"
indexinfo[].command[].indexname "album1"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "album1"
@@ -424,18 +666,20 @@ indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "album1"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "album1"
+indexinfo[].command[].command "type WeightedSet<string>"
+indexinfo[].command[].indexname "album1"
indexinfo[].command[].command "word"
-indexinfo[].command[].indexname "complexarray"
-indexinfo[].command[].command "index"
-indexinfo[].command[].indexname "complexarray"
-indexinfo[].command[].command "multivalue"
indexinfo[].command[].indexname "other"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "other"
indexinfo[].command[].command "attribute"
indexinfo[].command[].indexname "other"
indexinfo[].command[].command "numerical"
+indexinfo[].command[].indexname "other"
+indexinfo[].command[].command "type long"
indexinfo[].command[].indexname "pst_sta_boldingoff_nomatch_tag_01"
indexinfo[].command[].command "index"
indexinfo[].command[].indexname "pst_sta_boldingoff_nomatch_tag_01"
indexinfo[].command[].command "multivalue"
+indexinfo[].command[].indexname "pst_sta_boldingoff_nomatch_tag_01"
+indexinfo[].command[].command "type tag"
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java
index c792d3bf40b..16883a835d8 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java
@@ -48,8 +48,8 @@ public class NGramTestCase extends SchemaTestCase {
assertEquals(Stemming.NONE, gram1.getStemming());
List<String> queryCommands = gram1.getQueryCommands();
- assertEquals(1, queryCommands.size());
- assertEquals("ngram 1", queryCommands.get(0));
+ assertEquals(2, queryCommands.size());
+ assertEquals("ngram 1", queryCommands.get(1));
}
@Test
diff --git a/container-search/abi-spec.json b/container-search/abi-spec.json
index bf09eac3a40..6f48ae5b41a 100644
--- a/container-search/abi-spec.json
+++ b/container-search/abi-spec.json
@@ -7982,6 +7982,18 @@
],
"fields": []
},
+ "com.yahoo.search.searchers.QueryValidator": {
+ "superClass": "com.yahoo.search.Searcher",
+ "interfaces": [],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public void <init>()",
+ "public com.yahoo.search.Result search(com.yahoo.search.Query, com.yahoo.search.searchchain.Execution)"
+ ],
+ "fields": []
+ },
"com.yahoo.search.searchers.RateLimitingSearcher": {
"superClass": "com.yahoo.search.Searcher",
"interfaces": [],
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 0dfbf6470ad..42a8e05b8c0 100644
--- a/container-search/src/main/java/com/yahoo/prelude/Index.java
+++ b/container-search/src/main/java/com/yahoo/prelude/Index.java
@@ -44,11 +44,14 @@ public class Index {
/** The null index - don't use this for name lookups */
public static final Index nullIndex = new Index("(null)");
- private String name;
+ private final String name;
- private List<String> aliases = new ArrayList<>();
+ private String type; // TODO: Parse top a type object; do not expose this as a string
+
+ private final List<String> aliases = new ArrayList<>();
// The state resulting from adding commands to this (using addCommand)
+ private boolean tensor = false;
private boolean uriIndex = false;
private boolean hostIndex = false;
private StemMode stemMode = StemMode.NONE;
@@ -79,11 +82,11 @@ public class Index {
/** The string terminating an exact token in this index, or null to use the default (space) */
private String exactTerminator = null;
- /** Commands which are not coverted into a field */
- private Set<String> commands = new java.util.HashSet<>();
+ /** Commands which are not converted into a field */
+ private final Set<String> commands = new java.util.HashSet<>();
/** All the commands added to this, including those converted to fields above */
- private List<String> allCommands = new java.util.ArrayList<>();
+ private final List<String> allCommands = new java.util.ArrayList<>();
public Index(String name) {
this.name = name;
@@ -142,7 +145,9 @@ public class Index {
public Index addCommand(String commandString) {
allCommands.add(commandString);
- if ("fullurl".equals(commandString)) {
+ if (commandString.startsWith("type tensor(")) { // TODO: Type info can replace numerical, predicate, multivalue
+ setTensor(true);
+ } else if ("fullurl".equals(commandString)) {
setUriIndex(true);
} else if ("urlhost".equals(commandString)) {
setHostIndex(true);
@@ -196,6 +201,12 @@ public class Index {
return this;
}
+ private void setTensor(boolean tensor) {
+ this.tensor = tensor;
+ }
+
+ public boolean isTensor() { return tensor; }
+
private void setPredicateBounds(String bounds) {
if ( ! bounds.startsWith("[..")) {
predicateLowerBound = Long.parseLong(bounds.substring(1, bounds.indexOf("..")));
@@ -270,9 +281,7 @@ public class Index {
return "(null)".equals(name);
}
- public boolean isAttribute() {
- return isAttribute;
- }
+ public boolean isAttribute() { return isAttribute; }
public void setAttribute(boolean isAttribute) {
this.isAttribute = isAttribute;
diff --git a/container-search/src/main/java/com/yahoo/prelude/SearchDefinition.java b/container-search/src/main/java/com/yahoo/prelude/SearchDefinition.java
index 7859a9698d9..3d1240237e4 100644
--- a/container-search/src/main/java/com/yahoo/prelude/SearchDefinition.java
+++ b/container-search/src/main/java/com/yahoo/prelude/SearchDefinition.java
@@ -1,8 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.prelude;
-import com.yahoo.prelude.Index.Attribute;
-
import java.util.HashMap;
import java.util.Map;
@@ -17,13 +15,13 @@ import static com.yahoo.text.Lowercase.toLowerCase;
// TODO: Make freezable!
public class SearchDefinition {
- private String name;
+ private final String name;
/** A map of all indices in this search definition, indexed by name */
- private Map<String, Index> indices = new HashMap<>();
+ private final Map<String, Index> indices = new HashMap<>();
/* A map of all indices in this search definition, indexed by lower cased name. */
- private Map<String, Index> lowerCase = new HashMap<>();
+ private final Map<String, Index> lowerCase = new HashMap<>();
private String defaultPosition;
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
index 2090390890e..d30e67195c3 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
@@ -43,7 +43,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
private String serverId;
/** The set of all document databases available in the backend handled by this searcher */
- private Map<String, DocumentDatabase> documentDbs = new LinkedHashMap<>();
+ private final Map<String, DocumentDatabase> documentDbs = new LinkedHashMap<>();
private DocumentDatabase defaultDocumentDb = null;
/** Default docsum class. null means "unset" and is the default value */
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/HasIndexItem.java b/container-search/src/main/java/com/yahoo/prelude/query/HasIndexItem.java
index 6641dee9780..c70ee9e4def 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/HasIndexItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/HasIndexItem.java
@@ -2,8 +2,7 @@
package com.yahoo.prelude.query;
/**
- * An interface for items where it is useful to access an associated
- * index name.
+ * An interface for items where it is useful to access an index name.
*
* @author Steinar Knutsen
*/
@@ -11,7 +10,7 @@ public interface HasIndexItem {
String getIndexName();
- /** @return how many phrase words does this item contain */
+ /** Returns how many phrase words does this item contain */
int getNumWords();
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/IndexedItem.java b/container-search/src/main/java/com/yahoo/prelude/query/IndexedItem.java
index 3dafa230eb8..cba289fa5d8 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/IndexedItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/IndexedItem.java
@@ -3,7 +3,7 @@ package com.yahoo.prelude.query;
/**
- * Interface for Items that is indexed
+ * Interface for Items that are indexed
*
* @author Lars Christian Jensen
*/
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/ToolBox.java b/container-search/src/main/java/com/yahoo/prelude/query/ToolBox.java
index 72ba012ab07..5a6d4cd6382 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/ToolBox.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/ToolBox.java
@@ -18,8 +18,7 @@ public final class ToolBox {
* {@link ToolBox#visit(QueryVisitor, Item)}. Return true to visit the
* sub-items of the given item, return false to ignore the sub-items.
*
- * @param item
- * each item in the query tree
+ * @param item each item in the query tree
* @return whether or not to visit the sub-items of the argument item
* (and then invoke the {@link #onExit()} method)
*/
diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java
index 8db690678bb..5df12dc2053 100644
--- a/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java
+++ b/container-search/src/main/java/com/yahoo/search/searchchain/model/federation/LocalProviderSpec.java
@@ -33,6 +33,7 @@ public class LocalProviderSpec {
com.yahoo.search.querytransform.RangeQueryOptimizer.class,
com.yahoo.search.querytransform.SortingDegrader.class,
com.yahoo.prelude.searcher.ValidateSortingSearcher.class,
+ com.yahoo.search.searchers.QueryValidator.class,
com.yahoo.prelude.cluster.ClusterSearcher.class,
com.yahoo.search.grouping.GroupingValidator.class,
com.yahoo.search.grouping.vespa.GroupingExecutor.class,
diff --git a/container-search/src/main/java/com/yahoo/search/searchers/InputCheckingSearcher.java b/container-search/src/main/java/com/yahoo/search/searchers/InputCheckingSearcher.java
index 5e15a8ba14b..d8391fe08f3 100644
--- a/container-search/src/main/java/com/yahoo/search/searchers/InputCheckingSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/searchers/InputCheckingSearcher.java
@@ -12,6 +12,8 @@ import java.util.Map;
import java.util.logging.Logger;
import java.util.logging.Level;
+
+import com.yahoo.component.chain.dependencies.Before;
import com.yahoo.metrics.simple.Counter;
import com.yahoo.metrics.simple.MetricReceiver;
import com.yahoo.prelude.query.CompositeItem;
@@ -25,14 +27,16 @@ import com.yahoo.search.Result;
import com.yahoo.search.Searcher;
import com.yahoo.search.result.ErrorMessage;
import com.yahoo.search.searchchain.Execution;
+import com.yahoo.search.searchchain.PhaseNames;
import com.yahoo.yolean.Exceptions;
/**
- * Check whether the query tree seems to be "well formed". In other words, run heurestics against
+ * Check whether the query tree seems to be "well formed". In other words, run heuristics against
* the input data to see whether the query should sent to the search backend.
*
* @author Steinar Knutsen
*/
+@Before(PhaseNames.BACKEND)
public class InputCheckingSearcher extends Searcher {
private final Counter utfRejections;
diff --git a/container-search/src/main/java/com/yahoo/search/searchers/QueryValidator.java b/container-search/src/main/java/com/yahoo/search/searchers/QueryValidator.java
new file mode 100644
index 00000000000..26b5c2bc665
--- /dev/null
+++ b/container-search/src/main/java/com/yahoo/search/searchers/QueryValidator.java
@@ -0,0 +1,60 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.searchers;
+
+import com.yahoo.component.chain.dependencies.After;
+import com.yahoo.component.chain.dependencies.Before;
+import com.yahoo.prelude.Index;
+import com.yahoo.prelude.IndexFacts;
+import com.yahoo.prelude.query.CompositeItem;
+import com.yahoo.prelude.query.HasIndexItem;
+import com.yahoo.prelude.query.Item;
+import com.yahoo.prelude.query.ToolBox;
+import com.yahoo.search.Query;
+import com.yahoo.search.Result;
+import com.yahoo.search.Searcher;
+import com.yahoo.search.searchchain.Execution;
+import com.yahoo.search.searchchain.PhaseNames;
+
+import static com.yahoo.search.grouping.GroupingQueryParser.SELECT_PARAMETER_PARSING;
+
+/**
+ * Validation of query operators against the schema which is searched
+ *
+ * @author bratseth
+ */
+@After(SELECT_PARAMETER_PARSING)
+@Before(PhaseNames.BACKEND)
+public class QueryValidator extends Searcher {
+
+ @Override
+ public Result search(Query query, Execution execution) {
+ IndexFacts.Session session = execution.context().getIndexFacts().newSession(query);
+ ToolBox.visit(new ItemValidator(session), query.getModel().getQueryTree().getRoot());
+ return execution.search(query);
+ }
+
+ private static class ItemValidator extends ToolBox.QueryVisitor {
+
+ IndexFacts.Session session;
+
+ public ItemValidator(IndexFacts.Session session) {
+ this.session = session;
+ }
+
+ @Override
+ public boolean visit(Item item) {
+ if (item instanceof HasIndexItem) {
+ String indexName = ((HasIndexItem)item).getIndexName();
+ Index index = session.getIndex(indexName);
+ if (index != null && index.isTensor())
+ throw new IllegalArgumentException("Cannot search '" + indexName + "': It is a tensor field");
+ }
+ return true;
+ }
+
+ @Override
+ public void onExit() { }
+
+ }
+
+}
diff --git a/container-search/src/main/java/com/yahoo/search/searchers/ValidateNearestNeighborSearcher.java b/container-search/src/main/java/com/yahoo/search/searchers/ValidateNearestNeighborSearcher.java
index aca2998cba3..65ca4a93cc1 100644
--- a/container-search/src/main/java/com/yahoo/search/searchers/ValidateNearestNeighborSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/searchers/ValidateNearestNeighborSearcher.java
@@ -33,7 +33,7 @@ import java.util.Optional;
@Before(GroupingExecutor.COMPONENT_NAME) // Must happen before query.prepare()
public class ValidateNearestNeighborSearcher extends Searcher {
- private Map<String, TensorType> validAttributes = new HashMap<>();
+ private final Map<String, TensorType> validAttributes = new HashMap<>();
public ValidateNearestNeighborSearcher(AttributesConfig attributesConfig) {
for (AttributesConfig.Attribute a : attributesConfig.attribute()) {
@@ -61,12 +61,10 @@ public class ValidateNearestNeighborSearcher extends Searcher {
public Optional<ErrorMessage> errorMessage = Optional.empty();
- private final RankProperties rankProperties;
private final Map<String, TensorType> validAttributes;
private final Query query;
public NNVisitor(RankProperties rankProperties, Map<String, TensorType> validAttributes, Query query) {
- this.rankProperties = rankProperties;
this.validAttributes = validAttributes;
this.query = query;
}
diff --git a/container-search/src/test/java/com/yahoo/prelude/searcher/test/ValidatePredicateSearcherTestCase.java b/container-search/src/test/java/com/yahoo/prelude/searcher/test/ValidatePredicateSearcherTestCase.java
index 2187cb89ae2..850586ba8c5 100644
--- a/container-search/src/test/java/com/yahoo/prelude/searcher/test/ValidatePredicateSearcherTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/searcher/test/ValidatePredicateSearcherTestCase.java
@@ -23,7 +23,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
/**
- * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a>
+ * @author Magnar Nedland
*/
public class ValidatePredicateSearcherTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/searchers/test/QueryValidatorTestCase.java b/container-search/src/test/java/com/yahoo/search/searchers/test/QueryValidatorTestCase.java
new file mode 100644
index 00000000000..62089f48317
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/search/searchers/test/QueryValidatorTestCase.java
@@ -0,0 +1,45 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.searchers.test;
+
+import com.yahoo.config.subscription.ConfigGetter;
+import com.yahoo.prelude.IndexFacts;
+import com.yahoo.prelude.IndexModel;
+import com.yahoo.prelude.SearchDefinition;
+import com.yahoo.search.Query;
+import com.yahoo.search.config.IndexInfoConfig;
+import com.yahoo.search.searchchain.Execution;
+import com.yahoo.search.searchers.QueryValidator;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+/**
+ * @author bratseth
+ */
+public class QueryValidatorTestCase {
+
+ @Test
+ public void testValidation() {
+ SearchDefinition sd = new SearchDefinition("test");
+ sd.addCommand("mytensor", "type tensor(x[100]");
+ sd.addCommand("mystring", "type string");
+ IndexModel model = new IndexModel(sd);
+
+ IndexFacts indexFacts = new IndexFacts(model);
+ Execution execution = new Execution(Execution.Context.createContextStub(indexFacts));
+ new QueryValidator().search(new Query("?query=mystring:foo"), execution);
+
+ try {
+ new QueryValidator().search(new Query("?query=mytensor:foo"), execution);
+ fail("Excpected validation error");
+ }
+ catch (IllegalArgumentException e) {
+ // success
+ assertEquals("Cannot search 'mytensor': It is a tensor field", e.getMessage());
+ }
+ }
+
+}