diff options
Diffstat (limited to 'searchlib/src/main/java')
-rw-r--r-- | searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/TensorFunctionNode.java | 16 |
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(); + } + } /** |