diff options
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch/rpc')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java index 98172d4a96e..54eeccd6505 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java @@ -230,19 +230,21 @@ public class ProtobufSerialization { ? new LeanHit(replyHit.getGlobalId().toByteArray(), partId, distKey, replyHit.getRelevance()) : new LeanHit(replyHit.getGlobalId().toByteArray(), partId, distKey, replyHit.getRelevance(), replyHit.getSortData().toByteArray()); if (! featureNames.isEmpty()) { - List<SearchProtocol.Feature> featureValues = replyHit.getFeaturesList(); + List<SearchProtocol.Feature> featureValues = replyHit.getMatchFeaturesList(); + var object = new Value.ObjectValue(); var nameIter = featureNames.iterator(); var valueIter = featureValues.iterator(); while (nameIter.hasNext() && valueIter.hasNext()) { String name = nameIter.next(); SearchProtocol.Feature value = valueIter.next(); - ByteString tensorBlob = value.getTensorBlob(); - Tensor tensor = tensorBlob.isEmpty() - ? Tensor.from(value.getValue()) - : TypedBinaryFormat.decode(Optional.empty(), - GrowableByteBuffer.wrap(tensorBlob.toByteArray())); - hit.addMatchFeature(name, tensor); + ByteString tensorBlob = value.getTensor(); + if (tensorBlob.isEmpty()) { + object.put(name, value.getNumber()); + } else { + object.put(name, new Value.DataValue(tensorBlob.toByteArray())); + } } + hit.addMatchFeatures(object); } result.getLeanHits().add(hit); } |