diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-09-01 21:55:30 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-09-01 22:19:25 +0200 |
commit | 1583768921c1703475458428c9faf5d88acdff27 (patch) | |
tree | 9cd27c2160acc40f92737a1edcbac50d5c32a9c1 /container-search | |
parent | 36bead13fbbd0b3ce5c5a364b6f07ee1d3555b9b (diff) |
- Add fieldlist to docsum request.
- Only return fields requested from the backend.
Diffstat (limited to 'container-search')
3 files changed, 9 insertions, 3 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 e5fa37e7a65..09a101e3bff 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 @@ -33,6 +33,7 @@ import com.yahoo.vespa.objects.BufferSerializer; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; +import java.util.Set; import java.util.function.Consumer; public class ProtobufSerialization { @@ -130,6 +131,7 @@ public class ProtobufSerialization { static SearchProtocol.DocsumRequest.Builder createDocsumRequestBuilder(Query query, String serverId, String summaryClass, + Set<String> fields, boolean includeQueryData, double requestTimeout) { var builder = SearchProtocol.DocsumRequest.newBuilder() @@ -139,6 +141,9 @@ public class ProtobufSerialization { if (summaryClass != null) { builder.setSummaryClass(summaryClass); } + if (fields != null) { + builder.addAllFields(fields); + } var documentDb = query.getModel().getDocumentDb(); if (documentDb != null) { diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcProtobufFillInvoker.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcProtobufFillInvoker.java index 9e426cfe164..c84795352f5 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcProtobufFillInvoker.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcProtobufFillInvoker.java @@ -88,7 +88,7 @@ public class RpcProtobufFillInvoker extends FillInvoker { return; } var builder = ProtobufSerialization.createDocsumRequestBuilder( - result.getQuery(), serverId, summaryClass, summaryNeedsQuery, timeout.request()); + result.getQuery(), serverId, summaryClass, result.getQuery().getPresentation().getSummaryFields(), summaryNeedsQuery, timeout.request()); hitsByNode.forEach((nodeId, hits) -> { var payload = ProtobufSerialization.serializeDocsumRequest(builder, hits); sendDocsumsRequest(nodeId, hits, payload, result, timeout.client()); diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/ProtobufSerializationTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/ProtobufSerializationTest.java index 72b3095b2f9..6f7a1f3bd8b 100644 --- a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/ProtobufSerializationTest.java +++ b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/ProtobufSerializationTest.java @@ -16,6 +16,7 @@ import org.junit.jupiter.api.Test; import java.util.Collections; import java.util.List; +import java.util.Set; import static org.junit.jupiter.api.Assertions.*; @@ -60,13 +61,13 @@ public class ProtobufSerializationTest { @Test void testDocsumSerialization() { Query q = new Query("search/?query=test&hits=10&offset=3"); - var builder = ProtobufSerialization.createDocsumRequestBuilder(q, "server", "summary", true, 0.5); + var builder = ProtobufSerialization.createDocsumRequestBuilder(q, "server", "summary", Set.of("f1", "f2"),true, 0.5); builder.setTimeout(0); var hit = new FastHit(); hit.setGlobalId(new GlobalId(IdString.createIdString("id:ns:type::id")).getRawId()); var bytes = ProtobufSerialization.serializeDocsumRequest(builder, Collections.singletonList(hit)); - assertEquals(46, bytes.length); + assertEquals(56, bytes.length); } private String contentsOf(ByteString property) { |