aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/main/java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-12-18 16:46:13 +0100
committerJon Bratseth <bratseth@verizonmedia.com>2019-12-18 16:46:13 +0100
commit9b458439aab4b1b48ee2e76b1e0b5e31ce0c3177 (patch)
tree7e719edc63691a6656494b454b4e0a564c98c60d /searchlib/src/main/java
parent09f25dfaba513df26f882698340ba0745a31f4f2 (diff)
Exmbrace serialized expressions
Diffstat (limited to 'searchlib/src/main/java')
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/TensorFunctionNode.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/TensorFunctionNode.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/TensorFunctionNode.java
index 6200515462b..6e1cdf52158 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/TensorFunctionNode.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/TensorFunctionNode.java
@@ -169,16 +169,24 @@ public class TensorFunctionNode extends CompositeNode {
if (outermost instanceof ExpressionToStringContext) {
ExpressionToStringContext context = (ExpressionToStringContext)outermost;
- return expression.toString(new StringBuilder(),
- new ExpressionToStringContext(context.wrappedSerializationContext, c, context.path, context.parent),
- context.path,
- context.parent).toString();
+ ExpressionNode root = expression;
+ if (root instanceof CompositeNode && ! (root instanceof EmbracedNode) && ! isIdentifierReference(root))
+ root = new EmbracedNode(root); // Output embraced if composite
+ return root.toString(new StringBuilder(),
+ new ExpressionToStringContext(context.wrappedSerializationContext, c, context.path, context.parent),
+ context.path,
+ context.parent).toString();
}
else {
return expression.toString();
}
}
+ private boolean isIdentifierReference(ExpressionNode node) {
+ if ( ! (node instanceof ReferenceNode)) return false;
+ return ((ReferenceNode)node).reference().isIdentifier();
+ }
+
}
/**