aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/test
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2022-09-13 11:24:10 +0000
committerGeir Storli <geirst@yahooinc.com>2022-09-13 12:32:36 +0000
commit65ecb02c12d3f87ee3839bdddd14ce969a40d7ce (patch)
treec193afa889d34108c88d7dcec7be4d54a5c58516 /config-model/src/test
parentcf494ca75f3dc3bd66ef90a8438a20a5dd447452 (diff)
Allow dynamic transforms on array<string> summary fields.
Diffstat (limited to 'config-model/src/test')
-rw-r--r--config-model/src/test/derived/bolding_dynamic_summary/documenttypes.cfg104
-rw-r--r--config-model/src/test/derived/bolding_dynamic_summary/ilscripts.cfg19
-rw-r--r--config-model/src/test/derived/bolding_dynamic_summary/summary.cfg92
-rw-r--r--config-model/src/test/derived/bolding_dynamic_summary/test.sd50
-rw-r--r--config-model/src/test/java/com/yahoo/schema/derived/ExportingTestCase.java5
-rw-r--r--config-model/src/test/java/com/yahoo/schema/processing/BoldingTestCase.java14
6 files changed, 277 insertions, 7 deletions
diff --git a/config-model/src/test/derived/bolding_dynamic_summary/documenttypes.cfg b/config-model/src/test/derived/bolding_dynamic_summary/documenttypes.cfg
new file mode 100644
index 00000000000..f88a22d8979
--- /dev/null
+++ b/config-model/src/test/derived/bolding_dynamic_summary/documenttypes.cfg
@@ -0,0 +1,104 @@
+ignoreundefinedfields false
+usev8geopositions false
+doctype[].name "document"
+doctype[].idx 10000
+doctype[].internalid 8
+doctype[].contentstruct 10001
+doctype[].primitivetype[].idx 10002
+doctype[].primitivetype[].name "bool"
+doctype[].primitivetype[].idx 10003
+doctype[].primitivetype[].name "byte"
+doctype[].primitivetype[].idx 10004
+doctype[].primitivetype[].name "double"
+doctype[].primitivetype[].idx 10005
+doctype[].primitivetype[].name "float"
+doctype[].primitivetype[].idx 10006
+doctype[].primitivetype[].name "float16"
+doctype[].primitivetype[].idx 10007
+doctype[].primitivetype[].name "int"
+doctype[].primitivetype[].idx 10008
+doctype[].primitivetype[].name "long"
+doctype[].primitivetype[].idx 10010
+doctype[].primitivetype[].name "predicate"
+doctype[].primitivetype[].idx 10011
+doctype[].primitivetype[].name "raw"
+doctype[].primitivetype[].idx 10012
+doctype[].primitivetype[].name "string"
+doctype[].primitivetype[].idx 10014
+doctype[].primitivetype[].name "uri"
+doctype[].wsettype[].idx 10013
+doctype[].wsettype[].elementtype 10012
+doctype[].wsettype[].createifnonexistent true
+doctype[].wsettype[].removeifzero true
+doctype[].wsettype[].internalid 18
+doctype[].structtype[].idx 10001
+doctype[].structtype[].name "document.header"
+doctype[].structtype[].internalid -284186494
+doctype[].structtype[].idx 10009
+doctype[].structtype[].name "position"
+doctype[].structtype[].field[].name "x"
+doctype[].structtype[].field[].internalid 914677694
+doctype[].structtype[].field[].type 10007
+doctype[].structtype[].field[].name "y"
+doctype[].structtype[].field[].internalid 900009410
+doctype[].structtype[].field[].type 10007
+doctype[].structtype[].internalid 1381038251
+doctype[].name "test"
+doctype[].idx 10015
+doctype[].internalid -877171244
+doctype[].inherits[].idx 10000
+doctype[].contentstruct 10016
+doctype[].fieldsets{[]}.fields[] "arr_1"
+doctype[].fieldsets{[]}.fields[] "arr_2"
+doctype[].fieldsets{[]}.fields[] "arr_3"
+doctype[].fieldsets{[]}.fields[] "arr_4"
+doctype[].fieldsets{[]}.fields[] "str_1"
+doctype[].fieldsets{[]}.fields[] "str_2"
+doctype[].fieldsets{[]}.fields[] "str_3"
+doctype[].fieldsets{[]}.fields[] "str_4"
+doctype[].arraytype[].idx 10017
+doctype[].arraytype[].elementtype 10012
+doctype[].arraytype[].internalid -1486737430
+doctype[].arraytype[].idx 10018
+doctype[].arraytype[].elementtype 10012
+doctype[].arraytype[].internalid -1486737430
+doctype[].arraytype[].idx 10019
+doctype[].arraytype[].elementtype 10012
+doctype[].arraytype[].internalid -1486737430
+doctype[].arraytype[].idx 10020
+doctype[].arraytype[].elementtype 10012
+doctype[].arraytype[].internalid -1486737430
+doctype[].structtype[].idx 10016
+doctype[].structtype[].name "test.header"
+doctype[].structtype[].field[].name "str_1"
+doctype[].structtype[].field[].internalid 91206053
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].field[].name "str_2"
+doctype[].structtype[].field[].internalid 1236519725
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].field[].name "str_3"
+doctype[].structtype[].field[].internalid 1257861515
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].field[].name "str_4"
+doctype[].structtype[].field[].internalid 2009526185
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].field[].name "arr_1"
+doctype[].structtype[].field[].internalid 618314164
+doctype[].structtype[].field[].type 10017
+doctype[].structtype[].field[].name "arr_2"
+doctype[].structtype[].field[].internalid 1363829203
+doctype[].structtype[].field[].type 10018
+doctype[].structtype[].field[].name "arr_3"
+doctype[].structtype[].field[].internalid 815179933
+doctype[].structtype[].field[].type 10019
+doctype[].structtype[].field[].name "arr_4"
+doctype[].structtype[].field[].internalid 142340927
+doctype[].structtype[].field[].type 10020
+doctype[].structtype[].field[].name "str_3_dyn"
+doctype[].structtype[].field[].internalid 1779429789
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].field[].name "str_4_bold"
+doctype[].structtype[].field[].internalid 1385662257
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].internalid 306916075
+
diff --git a/config-model/src/test/derived/bolding_dynamic_summary/ilscripts.cfg b/config-model/src/test/derived/bolding_dynamic_summary/ilscripts.cfg
new file mode 100644
index 00000000000..f9fdab87297
--- /dev/null
+++ b/config-model/src/test/derived/bolding_dynamic_summary/ilscripts.cfg
@@ -0,0 +1,19 @@
+maxtermoccurrences 100
+fieldmatchmaxlength 1000000
+ilscript[].doctype "test"
+ilscript[].docfield[] "str_1"
+ilscript[].docfield[] "str_2"
+ilscript[].docfield[] "str_3"
+ilscript[].docfield[] "str_4"
+ilscript[].docfield[] "arr_1"
+ilscript[].docfield[] "arr_2"
+ilscript[].docfield[] "arr_3"
+ilscript[].docfield[] "arr_4"
+ilscript[].content[] "clear_state | guard { input str_1 | tokenize normalize stem:\"BEST\" | index str_1 | summary str_1; }"
+ilscript[].content[] "clear_state | guard { input str_2 | tokenize normalize stem:\"BEST\" | index str_2 | summary str_2; }"
+ilscript[].content[] "clear_state | guard { input str_3 | tokenize normalize stem:\"BEST\" | index str_3 | summary str_3 | summary str_3_dyn; }"
+ilscript[].content[] "clear_state | guard { input str_4 | tokenize normalize stem:\"BEST\" | index str_4 | summary str_4 | summary str_4_bold; }"
+ilscript[].content[] "clear_state | guard { input arr_1 | for_each { tokenize normalize stem:\"BEST\" } | index arr_1 | summary arr_1; }"
+ilscript[].content[] "clear_state | guard { input arr_2 | for_each { tokenize normalize stem:\"BEST\" } | index arr_2 | summary arr_2; }"
+ilscript[].content[] "clear_state | guard { input arr_3 | for_each { tokenize normalize stem:\"BEST\" } | index arr_3 | summary arr_3; }"
+ilscript[].content[] "clear_state | guard { input arr_4 | for_each { tokenize normalize stem:\"BEST\" } | index arr_4 | summary arr_4; }"
diff --git a/config-model/src/test/derived/bolding_dynamic_summary/summary.cfg b/config-model/src/test/derived/bolding_dynamic_summary/summary.cfg
new file mode 100644
index 00000000000..b056ada8bd5
--- /dev/null
+++ b/config-model/src/test/derived/bolding_dynamic_summary/summary.cfg
@@ -0,0 +1,92 @@
+defaultsummaryid 1128441658
+usev8geopositions true
+classes[].id 1128441658
+classes[].name "default"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "str_1"
+classes[].fields[].type "longstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "str_1"
+classes[].fields[].name "str_2"
+classes[].fields[].type "longstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "str_2"
+classes[].fields[].name "str_3"
+classes[].fields[].type "longstring"
+classes[].fields[].command ""
+classes[].fields[].source ""
+classes[].fields[].name "str_4"
+classes[].fields[].type "longstring"
+classes[].fields[].command ""
+classes[].fields[].source ""
+classes[].fields[].name "arr_1"
+classes[].fields[].type "jsonstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "arr_1"
+classes[].fields[].name "arr_2"
+classes[].fields[].type "jsonstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "arr_2"
+classes[].fields[].name "arr_3"
+classes[].fields[].type "jsonstring"
+classes[].fields[].command ""
+classes[].fields[].source ""
+classes[].fields[].name "arr_4"
+classes[].fields[].type "jsonstring"
+classes[].fields[].command ""
+classes[].fields[].source ""
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].command "rankfeatures"
+classes[].fields[].source ""
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].command "summaryfeatures"
+classes[].fields[].source ""
+classes[].fields[].name "str_3_dyn"
+classes[].fields[].type "longstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "str_3_dyn"
+classes[].fields[].name "arr_3_dyn"
+classes[].fields[].type "jsonstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "arr_3"
+classes[].fields[].name "str_4_bold"
+classes[].fields[].type "longstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "str_4_bold"
+classes[].fields[].name "arr_4_bold"
+classes[].fields[].type "jsonstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "arr_4"
+classes[].fields[].name "documentid"
+classes[].fields[].type "longstring"
+classes[].fields[].command "documentid"
+classes[].fields[].source ""
+classes[].id 2139497711
+classes[].name "dyn"
+classes[].omitsummaryfeatures false
+classes[].fields[].name "str_3_dyn"
+classes[].fields[].type "longstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "str_3_dyn"
+classes[].fields[].name "arr_3_dyn"
+classes[].fields[].type "jsonstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "arr_3"
+classes[].fields[].name "str_4_bold"
+classes[].fields[].type "longstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "str_4_bold"
+classes[].fields[].name "arr_4_bold"
+classes[].fields[].type "jsonstring"
+classes[].fields[].command "dynamicteaser"
+classes[].fields[].source "arr_4"
+classes[].fields[].name "rankfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].command "rankfeatures"
+classes[].fields[].source ""
+classes[].fields[].name "summaryfeatures"
+classes[].fields[].type "featuredata"
+classes[].fields[].command "summaryfeatures"
+classes[].fields[].source ""
diff --git a/config-model/src/test/derived/bolding_dynamic_summary/test.sd b/config-model/src/test/derived/bolding_dynamic_summary/test.sd
new file mode 100644
index 00000000000..caa7ca2cd2e
--- /dev/null
+++ b/config-model/src/test/derived/bolding_dynamic_summary/test.sd
@@ -0,0 +1,50 @@
+schema test {
+ document test {
+ field str_1 type string {
+ indexing: index | summary
+ summary: dynamic
+ }
+ field str_2 type string {
+ indexing: index | summary
+ bolding: on
+ }
+ field str_3 type string {
+ indexing: index | summary
+ }
+ field str_4 type string {
+ indexing: index | summary
+ }
+ field arr_1 type array<string> {
+ indexing: index | summary
+ summary: dynamic
+ }
+ field arr_2 type array<string> {
+ indexing: index | summary
+ bolding: on
+ }
+ field arr_3 type array<string> {
+ indexing: index | summary
+ }
+ field arr_4 type array<string> {
+ indexing: index | summary
+ }
+ }
+ document-summary dyn {
+ summary str_3_dyn type string {
+ source: str_3
+ dynamic
+ }
+ summary arr_3_dyn type array<string> {
+ source: arr_3
+ dynamic
+ }
+ summary str_4_bold type string {
+ source: str_4
+ bolding: on
+ }
+ summary arr_4_bold type array<string> {
+ source: arr_4
+ bolding: on
+ }
+ }
+}
diff --git a/config-model/src/test/java/com/yahoo/schema/derived/ExportingTestCase.java b/config-model/src/test/java/com/yahoo/schema/derived/ExportingTestCase.java
index b5b075ae260..c1e65abb5a5 100644
--- a/config-model/src/test/java/com/yahoo/schema/derived/ExportingTestCase.java
+++ b/config-model/src/test/java/com/yahoo/schema/derived/ExportingTestCase.java
@@ -192,4 +192,9 @@ public class ExportingTestCase extends AbstractExportingTestCase {
assertCorrectDeriving("structandfieldset");
}
+ @Test
+ void testBoldingAndDynamicSummary() throws IOException, ParseException {
+ assertCorrectDeriving("bolding_dynamic_summary");
+ }
+
}
diff --git a/config-model/src/test/java/com/yahoo/schema/processing/BoldingTestCase.java b/config-model/src/test/java/com/yahoo/schema/processing/BoldingTestCase.java
index fe38ea1f1b1..7162cf7717b 100644
--- a/config-model/src/test/java/com/yahoo/schema/processing/BoldingTestCase.java
+++ b/config-model/src/test/java/com/yahoo/schema/processing/BoldingTestCase.java
@@ -39,10 +39,10 @@ public class BoldingTestCase extends AbstractSchemaTestCase {
}
}
- private final String boldonarray =
- "search boldonarray {\n" +
- " document boldonarray {\n" +
- " field myarray type array<string> {\n" +
+ private final String boldonwset =
+ "search test {\n" +
+ " document test {\n" +
+ " field mywset type weightedset<string> {\n" +
" indexing: summary | index\n" +
" bolding: on\n" +
" }\n" +
@@ -50,12 +50,12 @@ public class BoldingTestCase extends AbstractSchemaTestCase {
"}\n";
@Test
- void testBoldOnArray() throws ParseException {
+ void testBoldOnWsetThrowsException() throws ParseException {
try {
- ApplicationBuilder.createFromString(boldonarray);
+ ApplicationBuilder.createFromString(boldonwset);
fail("Expected exception");
} catch (IllegalArgumentException e) {
- assertEquals("'bolding: on' for non-text field 'myarray' (datatype Array<string> (code: -1486737430)) is not allowed",
+ assertEquals("'bolding: on' for non-text field 'mywset' (datatype WeightedSet<string> (code: 1328286588)) is not allowed",
e.getMessage());
}
}