summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-08-15 20:36:38 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-08-15 20:36:38 +0200
commit5905c45359bdbeae4c488ca88474b0513b5ee185 (patch)
treea2d4054e3ed723d3197d1f3b753e98ec05b662bc /container-search
parentfbd92b4bc20faa0d559490567f735aa3f14ac6f7 (diff)
Send the sessionId down if present.
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java b/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java
index fb003463dba..e4292529add 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java
@@ -14,6 +14,7 @@ import com.yahoo.prelude.fastsearch.FastHit;
import com.yahoo.prelude.fastsearch.TimeoutException;
import com.yahoo.search.Query;
import com.yahoo.search.Result;
+import com.yahoo.search.query.SessionId;
import com.yahoo.search.result.ErrorMessage;
import com.yahoo.search.result.Hit;
import com.yahoo.slime.BinaryFormat;
@@ -115,19 +116,23 @@ public class Dispatcher extends AbstractComponent {
return;
}
- byte[] serializedSlime = BinaryFormat.encode(toSlime(summaryClass, hits));
- double timeoutSeconds = ((double)result.getQuery().getTimeLeft()-3.0)/1000.0;
+ Query query = result.getQuery();
+ byte[] serializedSlime = BinaryFormat.encode(toSlime(summaryClass, query.getSessionId(false), hits));
+ double timeoutSeconds = ((double)query.getTimeLeft()-3.0)/1000.0;
Compressor.Compression compressionResult = compressor.compress(compression, serializedSlime);
client.getDocsums(hits, node, compressionResult.type(),
serializedSlime.length, compressionResult.data(), responseReceiver, timeoutSeconds);
}
- public Slime toSlime(String summaryClass, List<FastHit> hits) {
+ static private Slime toSlime(String summaryClass, SessionId sessionId, List<FastHit> hits) {
Slime slime = new Slime();
Cursor root = slime.setObject();
if (summaryClass != null) {
root.setString("class", summaryClass);
}
+ if (sessionId != null) {
+ root.setData("sessionid", sessionId.asUtf8String().getBytes());
+ }
Cursor gids = root.setArray("gids");
for (FastHit hit : hits) {
gids.addData(hit.getGlobalId().getRawId());