summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2023-11-16 14:52:47 +0000
committerArne Juul <arnej@yahooinc.com>2023-11-16 19:01:17 +0000
commit16ab76c8e668b90177438c1e793a253f48eb55f0 (patch)
treeab767179bf346ab49853bcfcc2ab2ab264c1e11f /searchlib
parentacd4ebf2718a4d80998b87a57c4b046e56f8e3e0 (diff)
always process with SerializationContext (needed by unpack_bits)
Diffstat (limited to 'searchlib')
-rwxr-xr-xsearchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java3
-rwxr-xr-xsearchlib/src/test/java/com/yahoo/searchlib/rankingexpression/RankingExpressionTestCase.java6
2 files changed, 6 insertions, 3 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java
index a7b45feb043..c0dfc0e1d29 100755
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java
@@ -257,6 +257,9 @@ public class RankingExpression implements Serializable {
* @return a list of named rank properties required to implement this expression
*/
public Map<String, String> getRankProperties(SerializationContext context) {
+ if ("".equals(name)) {
+ return Map.of();
+ }
Deque<String> path = new LinkedList<>();
String serializedRoot = root.toString(new StringBuilder(), context, path, null).toString();
Map<String, String> serializedExpressions = context.serializedFunctions();
diff --git a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/RankingExpressionTestCase.java b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/RankingExpressionTestCase.java
index 8af77ec1cdd..8d60f893c7c 100755
--- a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/RankingExpressionTestCase.java
+++ b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/RankingExpressionTestCase.java
@@ -364,7 +364,7 @@ public class RankingExpressionTestCase {
private void assertSerialization(String expectedSerialization, String expressionString) {
String serializedExpression;
try {
- RankingExpression expression = new RankingExpression(expressionString);
+ RankingExpression expression = new RankingExpression("secondphase", expressionString);
// No functions -> expect one rank property
serializedExpression = expression.getRankProperties(new SerializationContext()).values().iterator().next();
assertEquals(expectedSerialization, serializedExpression);
@@ -376,7 +376,7 @@ public class RankingExpressionTestCase {
try {
// No functions -> output should be parseable to a ranking expression
// (but not the same one due to primitivization)
- RankingExpression reparsedExpression = new RankingExpression(serializedExpression);
+ RankingExpression reparsedExpression = new RankingExpression("secondphase", serializedExpression);
// Serializing the primitivized expression should yield the same expression again
String reserializedExpression =
reparsedExpression.getRankProperties(new SerializationContext()).values().iterator().next();
@@ -399,7 +399,7 @@ public class RankingExpressionTestCase {
if (print)
System.out.println("Parsing expression '" + expressionString + "':");
- RankingExpression expression = new RankingExpression(expressionString);
+ RankingExpression expression = new RankingExpression("secondphase", expressionString);
Map<String, String> rankProperties = expression.getRankProperties(new SerializationContext(functions,
Optional.empty()));
if (print) {