diff options
author | Arne H Juul <arnej@yahooinc.com> | 2021-10-06 14:35:43 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2021-10-06 14:35:43 +0000 |
commit | d69bed9cff9e95c6c4422a32ad9708310337715b (patch) | |
tree | 22c72fc77bc7183d0c65e7290b0bb0c0329ac748 /container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java | |
parent | 87c26111db1a8071ad58a0d78fc455a3e765a3fa (diff) |
wire error received in protobuf message
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java | 9 |
1 files changed, 9 insertions, 0 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 250524fadf2..4379da5f98b 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 @@ -25,6 +25,7 @@ import com.yahoo.search.query.Ranking; import com.yahoo.search.query.Sorting; import com.yahoo.search.query.Sorting.Order; import com.yahoo.search.result.Coverage; +import com.yahoo.search.result.ErrorMessage; import com.yahoo.searchlib.aggregation.Grouping; import com.yahoo.slime.BinaryFormat; import com.yahoo.vespa.objects.BufferSerializer; @@ -42,6 +43,12 @@ public class ProtobufSerialization { return convertFromQuery(query, hits, serverId).toByteArray(); } + private static void convertSearchReplyErrors(Result target, List<SearchProtocol.Error> errors) { + for (var error : errors) { + target.hits().addError(ErrorMessage.createSearchReplyError(error.getMessage())); + } + } + private static SearchProtocol.SearchRequest convertFromQuery(Query query, int hits, String serverId) { var builder = SearchProtocol.SearchRequest.newBuilder().setHits(hits).setOffset(query.getOffset()) .setTimeout((int) query.getTimeLeft()); @@ -196,6 +203,8 @@ public class ProtobufSerialization { result.getResult().setTotalHitCount(protobuf.getTotalHitCount()); result.getResult().setCoverage(convertToCoverage(protobuf)); + convertSearchReplyErrors(result.getResult(), protobuf.getErrorsList()); + var haveGrouping = ! protobuf.getGroupingBlob().isEmpty(); if (haveGrouping) { BufferSerializer buf = new BufferSerializer(new GrowableByteBuffer(protobuf.getGroupingBlob().asReadOnlyByteBuffer())); |