diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-12-18 16:46:13 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-12-18 16:46:13 +0100 |
commit | 9b458439aab4b1b48ee2e76b1e0b5e31ce0c3177 (patch) | |
tree | 7e719edc63691a6656494b454b4e0a564c98c60d /searchlib/src/main | |
parent | 09f25dfaba513df26f882698340ba0745a31f4f2 (diff) |
Exmbrace serialized expressions
Diffstat (limited to 'searchlib/src/main')
-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(); + } + } /** |