summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/dispatch/InvokerResult.java
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-09-16 22:57:02 +0200
committerGitHub <noreply@github.com>2019-09-16 22:57:02 +0200
commit049d1eb173f90f002e9f7251476fa0c8a71e6f7e (patch)
tree432ee8550037db4765d5fe8bad542b7038643fe3 /container-search/src/main/java/com/yahoo/search/dispatch/InvokerResult.java
parent74a39bfa696568cf2d94b9c3a773f4fc0c2d0d54 (diff)
Revert "Revert "Revert "Revert "Use a LeanHit until merging is done." MERGEOK"""
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch/InvokerResult.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/InvokerResult.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/InvokerResult.java b/container-search/src/main/java/com/yahoo/search/dispatch/InvokerResult.java
new file mode 100644
index 00000000000..cd8228624c5
--- /dev/null
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/InvokerResult.java
@@ -0,0 +1,52 @@
+package com.yahoo.search.dispatch;
+
+import com.yahoo.prelude.fastsearch.FastHit;
+import com.yahoo.search.Query;
+import com.yahoo.search.Result;
+import com.yahoo.search.query.Sorting;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Wraps a Result and a flat, skinny hit list
+ */
+public class InvokerResult {
+ private final Result result;
+ private final List<LeanHit> leanHits;
+ public InvokerResult(Result result) {
+ this.result = result;
+ this.leanHits = Collections.emptyList();
+ }
+ public InvokerResult(Query query, int expectedHits) {
+ result = new Result(query);
+ leanHits = new ArrayList<>(expectedHits);
+ }
+
+ public Result getResult() {
+ return result;
+ }
+
+ public List<LeanHit> getLeanHits() {
+ return leanHits;
+ }
+ void complete() {
+ Query query = result.getQuery();
+ Sorting sorting = query.getRanking().getSorting();
+ for (LeanHit hit : leanHits) {
+ FastHit fh = new FastHit(hit.getGid(), hit.getRelevance(), hit.getPartId(), hit.getDistributionKey());
+ if (hit.hasSortData()) {
+ fh.setSortData(hit.getSortData(), sorting);
+ }
+ if (hit.getQueryPacketData() != null) {
+ fh.setQueryPacketData(hit.getQueryPacketData());
+ }
+ fh.setQuery(query);
+ fh.setFillable();
+ fh.setCached(false);
+ result.hits().add(fh);
+ }
+ leanHits.clear();
+ }
+}