diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-09-13 11:24:10 +0000 |
---|---|---|
committer | Geir Storli <geirst@yahooinc.com> | 2022-09-13 12:32:36 +0000 |
commit | 65ecb02c12d3f87ee3839bdddd14ce969a40d7ce (patch) | |
tree | c193afa889d34108c88d7dcec7be4d54a5c58516 /config-model/src/test | |
parent | cf494ca75f3dc3bd66ef90a8438a20a5dd447452 (diff) |
Allow dynamic transforms on array<string> summary fields.
Diffstat (limited to 'config-model/src/test')
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()); } } |