diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-09-25 16:49:52 -0700 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-09-25 16:49:52 -0700 |
commit | b03429e1aa5c07bd5c56ccf09196c16288736458 (patch) | |
tree | 99e51341e77a6b260b405a52d66bfda41459ff0b | |
parent | 11884899e39c54abeb79bacbe723df0ff34ce869 (diff) |
Skip return type info if default
5 files changed, 9 insertions, 75 deletions
diff --git a/config-model/src/test/derived/gemini2/rank-profiles.cfg b/config-model/src/test/derived/gemini2/rank-profiles.cfg index 2b73e923c88..aa4f963320d 100644 --- a/config-model/src/test/derived/gemini2/rank-profiles.cfg +++ b/config-model/src/test/derived/gemini2/rank-profiles.cfg @@ -21,13 +21,9 @@ rankprofile[].fef.property[].name "rankingExpression(wrapper1@2d437c13405e61d6). rankprofile[].fef.property[].value "rankingExpression(wrapper2@2d437c13405e61d6)" rankprofile[].fef.property[].name "rankingExpression(toplevel).rankingScript" rankprofile[].fef.property[].value "rankingExpression(wrapper1@2d437c13405e61d6)" -rankprofile[].fef.property[].name "rankingExpression(toplevel).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(wrapper2@8fc8470e911f253f).rankingScript" rankprofile[].fef.property[].value "attribute(wrong)" rankprofile[].fef.property[].name "rankingExpression(wrapper1@8fc8470e911f253f).rankingScript" rankprofile[].fef.property[].value "rankingExpression(wrapper2@8fc8470e911f253f)" rankprofile[].fef.property[].name "rankingExpression(interfering).rankingScript" rankprofile[].fef.property[].value "rankingExpression(wrapper1@8fc8470e911f253f)" -rankprofile[].fef.property[].name "rankingExpression(interfering).type" -rankprofile[].fef.property[].value "tensor()" diff --git a/config-model/src/test/derived/rankexpression/rank-profiles.cfg b/config-model/src/test/derived/rankexpression/rank-profiles.cfg index d109ca4f0ec..9629ad863d4 100644 --- a/config-model/src/test/derived/rankexpression/rank-profiles.cfg +++ b/config-model/src/test/derived/rankexpression/rank-profiles.cfg @@ -128,8 +128,6 @@ rankprofile[].fef.property[].name "rankingExpression(fourtimessum).rankingScript rankprofile[].fef.property[].value "4 * (var1 + var2)" rankprofile[].fef.property[].name "rankingExpression(myfeature).rankingScript" rankprofile[].fef.property[].value "70 * fieldMatch(title).completeness * pow(0 - fieldMatch(title).earliness,2) + 30 * pow(0 - fieldMatch(description).earliness,2)" -rankprofile[].fef.property[].name "rankingExpression(myfeature).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(fourtimessum@5cf279212355b980.67f1e87166cfef86).rankingScript" rankprofile[].fef.property[].value "4 * (match + rankBoost)" rankprofile[].fef.property[].name "vespa.rank.firstphase" @@ -147,16 +145,10 @@ rankprofile[].fef.property[].name "rankingExpression(fourtimessum).rankingScript rankprofile[].fef.property[].value "4 * (var1 + var2)" rankprofile[].fef.property[].name "rankingExpression(myfeature).rankingScript" rankprofile[].fef.property[].value "70 * fieldMatch(title).completeness * pow(0 - fieldMatch(title).earliness,2) + 30 * pow(0 - fieldMatch(description).earliness,2)" -rankprofile[].fef.property[].name "rankingExpression(myfeature).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature).rankingScript" rankprofile[].fef.property[].value "70 * fieldMatch(title).completeness" -rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature2).rankingScript" rankprofile[].fef.property[].value "71 * fieldMatch(title).completeness" -rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature2).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(fourtimessum@2b1138e8965e7ff5.67f1e87166cfef86).rankingScript" rankprofile[].fef.property[].value "4 * (match + match)" rankprofile[].fef.property[].name "vespa.rank.firstphase" @@ -172,15 +164,11 @@ rankprofile[].fef.property[].value "rankingExpression(mysummaryfeature)" rankprofile[].name "macros3" rankprofile[].fef.property[].name "rankingExpression(onlyusedinsummaryfeature).rankingScript" rankprofile[].fef.property[].value "5" -rankprofile[].fef.property[].name "rankingExpression(onlyusedinsummaryfeature).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "vespa.summary.feature" rankprofile[].fef.property[].value "rankingExpression(matches(title,rankingExpression(onlyusedinsummaryfeature)))" rankprofile[].name "macros3-inherited" rankprofile[].fef.property[].name "rankingExpression(onlyusedinsummaryfeature).rankingScript" rankprofile[].fef.property[].value "5" -rankprofile[].fef.property[].name "rankingExpression(onlyusedinsummaryfeature).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "vespa.summary.feature" rankprofile[].fef.property[].value "rankingExpression(matches(title,rankingExpression(onlyusedinsummaryfeature)))" rankprofile[].name "macros-inherited" @@ -190,16 +178,10 @@ rankprofile[].fef.property[].name "rankingExpression(fourtimessum).rankingScript rankprofile[].fef.property[].value "4 * (var1 + var2)" rankprofile[].fef.property[].name "rankingExpression(myfeature).rankingScript" rankprofile[].fef.property[].value "70 * fieldMatch(title).completeness * pow(0 - fieldMatch(title).earliness,2) + 30 * pow(0 - fieldMatch(description).earliness,2)" -rankprofile[].fef.property[].name "rankingExpression(myfeature).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature).rankingScript" rankprofile[].fef.property[].value "80 * fieldMatch(title).completeness" -rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature2).rankingScript" rankprofile[].fef.property[].value "71 * fieldMatch(title).completeness" -rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature2).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(fourtimessum@2b1138e8965e7ff5.67f1e87166cfef86).rankingScript" rankprofile[].fef.property[].value "4 * (match + match)" rankprofile[].fef.property[].name "vespa.rank.firstphase" @@ -221,16 +203,10 @@ rankprofile[].fef.property[].name "rankingExpression(fourtimessum).rankingScript rankprofile[].fef.property[].value "4 * (var1 + var2)" rankprofile[].fef.property[].name "rankingExpression(myfeature).rankingScript" rankprofile[].fef.property[].value "70 * fieldMatch(title).completeness * pow(0 - fieldMatch(title).earliness,2) + 30 * pow(0 - fieldMatch(description).earliness,2)" -rankprofile[].fef.property[].name "rankingExpression(myfeature).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature).rankingScript" rankprofile[].fef.property[].value "80 * fieldMatch(title).completeness" -rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature2).rankingScript" rankprofile[].fef.property[].value "71 * fieldMatch(title).completeness" -rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature2).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(fourtimessum@2b1138e8965e7ff5.67f1e87166cfef86).rankingScript" rankprofile[].fef.property[].value "4 * (match + match)" rankprofile[].fef.property[].name "vespa.rank.firstphase" @@ -252,16 +228,10 @@ rankprofile[].fef.property[].name "rankingExpression(fourtimessum).rankingScript rankprofile[].fef.property[].value "4 * (var1 + var2)" rankprofile[].fef.property[].name "rankingExpression(myfeature).rankingScript" rankprofile[].fef.property[].value "700 * fieldMatch(title).completeness" -rankprofile[].fef.property[].name "rankingExpression(myfeature).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature).rankingScript" rankprofile[].fef.property[].value "80 * fieldMatch(title).completeness" -rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature2).rankingScript" rankprofile[].fef.property[].value "71 * fieldMatch(title).completeness" -rankprofile[].fef.property[].name "rankingExpression(mysummaryfeature2).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "vespa.rank.firstphase" rankprofile[].fef.property[].value "rankingExpression(firstphase)" rankprofile[].fef.property[].name "rankingExpression(firstphase).rankingScript" @@ -279,14 +249,8 @@ rankprofile[].fef.property[].name "rankingExpression(m1).rankingScript" rankprofile[].fef.property[].value "700 * fieldMatch(title).completeness" rankprofile[].fef.property[].name "rankingExpression(m2).rankingScript" rankprofile[].fef.property[].value "rankingExpression(m1) * 67" -rankprofile[].fef.property[].name "rankingExpression(m2).type" -rankprofile[].fef.property[].value "tensor()" -rankprofile[].fef.property[].name "rankingExpression(m1).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(m4).rankingScript" rankprofile[].fef.property[].value "703 * fieldMatch(fromfile).completeness" -rankprofile[].fef.property[].name "rankingExpression(m4).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "vespa.rank.secondphase" rankprofile[].fef.property[].value "rankingExpression(secondphase)" rankprofile[].fef.property[].name "rankingExpression(secondphase).rankingScript" @@ -296,18 +260,10 @@ rankprofile[].fef.property[].name "rankingExpression(m1).rankingScript" rankprofile[].fef.property[].value "700 * fieldMatch(title).completeness" rankprofile[].fef.property[].name "rankingExpression(m2).rankingScript" rankprofile[].fef.property[].value "rankingExpression(m1) * 67" -rankprofile[].fef.property[].name "rankingExpression(m2).type" -rankprofile[].fef.property[].value "tensor()" -rankprofile[].fef.property[].name "rankingExpression(m1).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(m4).rankingScript" rankprofile[].fef.property[].value "701 * fieldMatch(title).completeness" -rankprofile[].fef.property[].name "rankingExpression(m4).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(m3).rankingScript" rankprofile[].fef.property[].value "if (isNan(attribute(nrtgmp)) == 1, 0.0, rankingExpression(m2))" -rankprofile[].fef.property[].name "rankingExpression(m3).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "vespa.rank.secondphase" rankprofile[].fef.property[].value "rankingExpression(secondphase)" rankprofile[].fef.property[].name "rankingExpression(secondphase).rankingScript" @@ -317,14 +273,8 @@ rankprofile[].fef.property[].name "rankingExpression(m1).rankingScript" rankprofile[].fef.property[].value "700 * fieldMatch(title).completeness" rankprofile[].fef.property[].name "rankingExpression(m2).rankingScript" rankprofile[].fef.property[].value "rankingExpression(m1) * 67" -rankprofile[].fef.property[].name "rankingExpression(m2).type" -rankprofile[].fef.property[].value "tensor()" -rankprofile[].fef.property[].name "rankingExpression(m1).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(m4).rankingScript" rankprofile[].fef.property[].value "703 * fieldMatch(fromfile).completeness" -rankprofile[].fef.property[].name "rankingExpression(m4).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "vespa.rank.secondphase" rankprofile[].fef.property[].value "rankingExpression(secondphase)" rankprofile[].fef.property[].name "rankingExpression(secondphase).rankingScript" @@ -334,22 +284,12 @@ rankprofile[].fef.property[].name "rankingExpression(m1).rankingScript" rankprofile[].fef.property[].value "700 * fieldMatch(title).completeness" rankprofile[].fef.property[].name "rankingExpression(m2).rankingScript" rankprofile[].fef.property[].value "rankingExpression(m1) * 67" -rankprofile[].fef.property[].name "rankingExpression(m2).type" -rankprofile[].fef.property[].value "tensor()" -rankprofile[].fef.property[].name "rankingExpression(m1).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(m4).rankingScript" rankprofile[].fef.property[].value "701 * fieldMatch(title).completeness" -rankprofile[].fef.property[].name "rankingExpression(m4).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(m3).rankingScript" rankprofile[].fef.property[].value "if (isNan(attribute(nrtgmp)) == 1, 0.0, rankingExpression(m2))" -rankprofile[].fef.property[].name "rankingExpression(m3).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "rankingExpression(m5).rankingScript" rankprofile[].fef.property[].value "if (isNan(attribute(glmpfw)) == 1, rankingExpression(m1), rankingExpression(m4))" -rankprofile[].fef.property[].name "rankingExpression(m5).type" -rankprofile[].fef.property[].value "tensor()" rankprofile[].fef.property[].name "vespa.rank.secondphase" rankprofile[].fef.property[].value "rankingExpression(secondphase)" rankprofile[].fef.property[].name "rankingExpression(secondphase).rankingScript" diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java index 2c1f4c8ecb6..150469cc928 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java @@ -82,7 +82,7 @@ public class RankingExpressionConstantsTestCase extends SearchDefinitionTestCase new ImportedModels(), new AttributeFields(s)).configProperties(); assertEquals("(rankingExpression(foo).rankingScript,14.0)", rankProperties.get(0).toString()); - assertEquals("(rankingExpression(firstphase).rankingScript,16.6)", rankProperties.get(3).toString()); + assertEquals("(rankingExpression(firstphase).rankingScript,16.6)", rankProperties.get(2).toString()); } @Test diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java index 7d62bc5089d..fd048737b43 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java @@ -41,7 +41,7 @@ public class RankingExpressionsTestCase extends SearchDefinitionTestCase { new QueryProfileRegistry(), new ImportedModels(), new AttributeFields(search)).configProperties(); - assertEquals(7, rankProperties.size()); + assertEquals(6, rankProperties.size()); assertEquals("rankingExpression(titlematch$).rankingScript", rankProperties.get(0).getFirst()); assertEquals("var1 * var2 + 890", rankProperties.get(0).getSecond()); @@ -49,17 +49,14 @@ public class RankingExpressionsTestCase extends SearchDefinitionTestCase { assertEquals("rankingExpression(artistmatch).rankingScript", rankProperties.get(1).getFirst()); assertEquals("78 + closeness(distance)", rankProperties.get(1).getSecond()); - assertEquals("rankingExpression(firstphase).rankingScript", rankProperties.get(6).getFirst()); - assertEquals("0.8 + 0.2 * rankingExpression(titlematch$@126063073eb2deb.ab95cd69909927c) + 0.8 * rankingExpression(titlematch$@c7e4c2d0e6d9f2a1.1d4ed08e56cce2e6) * closeness(distance)", rankProperties.get(6).getSecond()); + assertEquals("rankingExpression(firstphase).rankingScript", rankProperties.get(5).getFirst()); + assertEquals("0.8 + 0.2 * rankingExpression(titlematch$@126063073eb2deb.ab95cd69909927c) + 0.8 * rankingExpression(titlematch$@c7e4c2d0e6d9f2a1.1d4ed08e56cce2e6) * closeness(distance)", rankProperties.get(5).getSecond()); - assertEquals("rankingExpression(titlematch$@c7e4c2d0e6d9f2a1.1d4ed08e56cce2e6).rankingScript", rankProperties.get(4).getFirst()); - assertEquals("7 * 8 + 890", rankProperties.get(4).getSecond()); + assertEquals("rankingExpression(titlematch$@c7e4c2d0e6d9f2a1.1d4ed08e56cce2e6).rankingScript", rankProperties.get(3).getFirst()); + assertEquals("7 * 8 + 890", rankProperties.get(3).getSecond()); - assertEquals("rankingExpression(artistmatch).type", rankProperties.get(2).getFirst()); - assertEquals("tensor()", rankProperties.get(2).getSecond()); - - assertEquals("rankingExpression(titlematch$@126063073eb2deb.ab95cd69909927c).rankingScript", rankProperties.get(3).getFirst()); - assertEquals("4 * 5 + 890", rankProperties.get(3).getSecond()); + assertEquals("rankingExpression(titlematch$@126063073eb2deb.ab95cd69909927c).rankingScript", rankProperties.get(2).getFirst()); + assertEquals("4 * 5 + 890", rankProperties.get(2).getSecond()); } @Test(expected = IllegalArgumentException.class) diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java index 94d663b4954..0b68e71c21a 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java @@ -89,6 +89,7 @@ public class SerializationContext extends FunctionReferenceContext { /** Adds the serialization of the return type of a function */ public void addFunctionTypeSerialization(String functionName, TensorType type) { + if (type.rank() == 0) return; // no explicit type implies scalar (aka rank 0 tensor) serializedFunctions.put("rankingExpression(" + functionName + ").type", type.toString()); } |